Cockatrice 2025-11-30-Development-2.11.0-beta.38
A cross-platform virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
filter_string.h
Go to the documentation of this file.
1
6
7#ifndef FILTER_STRING_H
8#define FILTER_STRING_H
9
10#include "filter_tree.h"
11
12#include <QLoggingCategory>
13#include <QMap>
14#include <QString>
15#include <functional>
17#include <utility>
18
19inline Q_LOGGING_CATEGORY(FilterStringLog, "filter_string");
20
22typedef std::function<bool(const CardData &)> Filter;
23typedef std::function<bool(const QString &)> StringMatcher;
24typedef std::function<bool(int)> NumberMatcher;
25
26namespace peg
27{
28template <typename Annotation> struct AstBase;
29struct EmptyType;
31} // namespace peg
32
34{
35public:
37 explicit FilterString(const QString &exp);
38 [[nodiscard]] bool check(const CardData &card) const
39 {
40 if (card.isNull()) {
41 static CardInfoPtr blankCard = CardInfo::newInstance("");
42 return result(blankCard);
43 }
44 return result(card);
45 }
46
47 bool valid()
48 {
49 return _error.isEmpty();
50 }
51
52 QString error()
53 {
54 return _error;
55 }
56
57private:
58 QString _error;
60};
61
62#endif
QSharedPointer< CardInfo > CardInfoPtr
Definition card_info.cpp:20
static CardInfoPtr newInstance(const QString &_name)
Creates a new instance with only the card name.
Definition card_info.cpp:38
bool check(const CardData &card) const
Definition filter_string.h:38
FilterString()
Definition filter_string.cpp:325
QString _error
Definition filter_string.h:58
Filter result
Definition filter_string.h:59
QString error()
Definition filter_string.h:52
bool valid()
Definition filter_string.h:47
Q_LOGGING_CATEGORY(FilterStringLog, "filter_string")
std::function< bool(int)> NumberMatcher
Definition filter_string.h:24
std::function< bool(const QString &)> StringMatcher
Definition filter_string.h:23
std::function< bool(const CardData &)> Filter
Definition filter_string.h:22
CardInfoPtr CardData
Definition filter_string.h:21
TODO: Document this.
Definition filter_string.h:27
AstBase< EmptyType > Ast
Definition filter_string.h:30
Definition peglib.h:4256
Definition peglib.h:4389