From 84bae572d353b03ecb3498df83ba301a456b6c6f Mon Sep 17 00:00:00 2001 From: Kelly Rauchenberger Date: Thu, 21 Dec 2017 15:18:48 -0500 Subject: Added mask filters and fixed the synonym query refs #1 --- lib/filter.h | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'lib/filter.h') 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 { enum class type { empty, singleton, - group + group, + mask }; enum class comparison { @@ -106,6 +107,16 @@ namespace verbly { const_iterator end() const; + // Mask + + filter(std::string name, bool internal, filter subfilter); + + const std::string& getMaskName() const; + + bool isMaskInternal() const; + + const filter& getMaskFilter() const; + // Negation filter operator!() const; @@ -118,6 +129,10 @@ namespace verbly { filter& operator&=(filter condition); filter& operator|=(filter condition); + // Maskifying + + static filter mask(std::string name, filter subfilter); + // Utility filter normalize(object context) const; @@ -141,6 +156,11 @@ namespace verbly { std::list children; bool orlogic; } group_; + struct { + std::string name; + bool internal; + std::unique_ptr subfilter; + } mask_; }; type type_ = type::empty; -- cgit 1.4.1