summary refs log tree commit diff stats
path: root/lib/filter.h
diff options
context:
space:
mode:
authorKelly Rauchenberger <fefferburbia@gmail.com>2017-12-21 15:18:48 -0500
committerKelly Rauchenberger <fefferburbia@gmail.com>2017-12-21 15:18:48 -0500
commit84bae572d353b03ecb3498df83ba301a456b6c6f (patch)
tree36375672c50d7b0d46e10312d7edbf31a4895dc9 /lib/filter.h
parent350bfdb5ea9b4f7e50746c50a46d8032cbc5a104 (diff)
downloadverbly-84bae572d353b03ecb3498df83ba301a456b6c6f.tar.gz
verbly-84bae572d353b03ecb3498df83ba301a456b6c6f.tar.bz2
verbly-84bae572d353b03ecb3498df83ba301a456b6c6f.zip
Added mask filters and fixed the synonym query
refs #1
Diffstat (limited to 'lib/filter.h')
-rw-r--r--lib/filter.h22
1 files changed, 21 insertions, 1 deletions
diff --git a/lib/filter.h b/lib/filter.h index a12a822..942fe18 100644 --- a/lib/filter.h +++ b/lib/filter.h
@@ -14,7 +14,8 @@ namespace verbly {
14 enum class type { 14 enum class type {
15 empty, 15 empty,
16 singleton, 16 singleton,
17 group 17 group,
18 mask
18 }; 19 };
19 20
20 enum class comparison { 21 enum class comparison {
@@ -106,6 +107,16 @@ namespace verbly {
106 107
107 const_iterator end() const; 108 const_iterator end() const;
108 109
110 // Mask
111
112 filter(std::string name, bool internal, filter subfilter);
113
114 const std::string& getMaskName() const;
115
116 bool isMaskInternal() const;
117
118 const filter& getMaskFilter() const;
119
109 // Negation 120 // Negation
110 121
111 filter operator!() const; 122 filter operator!() const;
@@ -118,6 +129,10 @@ namespace verbly {
118 filter& operator&=(filter condition); 129 filter& operator&=(filter condition);
119 filter& operator|=(filter condition); 130 filter& operator|=(filter condition);
120 131
132 // Maskifying
133
134 static filter mask(std::string name, filter subfilter);
135
121 // Utility 136 // Utility
122 137
123 filter normalize(object context) const; 138 filter normalize(object context) const;
@@ -141,6 +156,11 @@ namespace verbly {
141 std::list<filter> children; 156 std::list<filter> children;
142 bool orlogic; 157 bool orlogic;
143 } group_; 158 } group_;
159 struct {
160 std::string name;
161 bool internal;
162 std::unique_ptr<filter> subfilter;
163 } mask_;
144 }; 164 };
145 type type_ = type::empty; 165 type type_ = type::empty;
146 166