Cockatrice 2026-10-19-Development-3.1.2-beta.2
A 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 <QLoggingCategory>
11#include <QString>
12#include <functional>
15
17
18inline Q_LOGGING_CATEGORY(FilterStringLog, "filter_string");
19
21typedef std::function<bool(const CardData &)> Filter;
22typedef std::function<bool(const QString &)> StringMatcher;
23typedef std::function<bool(int)> NumberMatcher;
24typedef std::function<bool(int, int)> NumberComparer;
25
26namespace peg
27{
28template <typename Annotation> struct AstBase;
29struct EmptyType;
30
32} // namespace peg
33
35{
36public:
38 explicit FilterString(const QString &exp, const CardSearchLanguage &searchLanguage = {});
39 [[nodiscard]] bool check(const CardData &card) const
40 {
41 if (card.isNull()) {
42 static CardInfoPtr blankCard = CardInfo::newInstance("");
43 return result(blankCard);
44 }
45 return result(card);
46 }
47
48 bool valid()
49 {
50 return _error.isEmpty();
51 }
52
53 QString error()
54 {
55 return _error;
56 }
57
58private:
59 QString _error;
61};
62
63#endif
QSharedPointer< CardInfo > CardInfoPtr
Definition card_info.cpp:15
static CardInfoPtr newInstance(const QString &_name)
Creates a new instance with only the card name.
Definition card_info.cpp:76
bool check(const CardData &card) const
Definition filter_string.h:39
FilterString()
Definition filter_string.cpp:430
QString _error
Definition filter_string.h:59
Filter result
Definition filter_string.h:60
QString error()
Definition filter_string.h:53
bool valid()
Definition filter_string.h:48
Q_LOGGING_CATEGORY(CrashReportLog, "crash_report")
std::function< bool(int)> NumberMatcher
Definition filter_string.h:23
std::function< bool(const QString &)> StringMatcher
Definition filter_string.h:22
std::function< bool(const CardData &)> Filter
Definition filter_string.h:21
std::function< bool(int, int)> NumberComparer
Definition filter_string.h:24
CardInfoPtr CardData
Definition filter_string.h:20
Definition filter_string.h:27
AstBase< EmptyType > Ast
Definition filter_string.h:31
The card language and matching mode searches run against.
Definition card_localization.h:27
Definition peglib.h:6300
Definition peglib.h:6440