diff options
author | Kelly Rauchenberger <fefferburbia@gmail.com> | 2017-12-21 15:18:48 -0500 |
---|---|---|
committer | Kelly Rauchenberger <fefferburbia@gmail.com> | 2017-12-21 15:18:48 -0500 |
commit | 84bae572d353b03ecb3498df83ba301a456b6c6f (patch) | |
tree | 36375672c50d7b0d46e10312d7edbf31a4895dc9 /lib/filter.h | |
parent | 350bfdb5ea9b4f7e50746c50a46d8032cbc5a104 (diff) | |
download | verbly-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.h | 22 |
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 | ||