diff options
Diffstat (limited to 'include/llmr/style/filter_comparison.hpp')
-rw-r--r-- | include/llmr/style/filter_comparison.hpp | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/include/llmr/style/filter_comparison.hpp b/include/llmr/style/filter_comparison.hpp deleted file mode 100644 index 0e7a929e1c..0000000000 --- a/include/llmr/style/filter_comparison.hpp +++ /dev/null @@ -1,65 +0,0 @@ -#ifndef LLMR_STYLE_FILTER_COMPARISON -#define LLMR_STYLE_FILTER_COMPARISON - -#include <llmr/style/value.hpp> - -#include <vector> -#include <string> -#include <iosfwd> - -namespace llmr { - -class FilterComparison { -public: - enum class Operator : uint8_t { - Equal, - NotEqual, - Greater, - GreaterEqual, - Less, - LessEqual, - In, - NotIn - }; - - class Instance { - public: - Instance(Operator op, std::vector<Value> &&values) - : op(op), values(values) {} - - bool compare(const std::vector<Value> &property_values) const; - - private: - Operator op = Operator::Equal; - std::vector<Value> values; - - friend std::ostream& operator <<(std::ostream &, const Instance &); - }; - -public: - FilterComparison(const std::string &field) : field(field) {}; - - const std::string &getField() const; - template <typename Extractor> inline bool compare(const Extractor &extractor) const; - - template <typename ...Args> - inline void add(Args&& ...args) { - instances.emplace_back(::std::forward<Args>(args)...); - } - -private: - std::string field; - std::vector<Instance> instances; - - friend std::ostream& operator <<(std::ostream &, const FilterComparison &); -}; - -std::ostream& operator <<(std::ostream &s, const FilterComparison &comparison); -std::ostream& operator <<(std::ostream &s, const FilterComparison::Instance &instance); - - -FilterComparison::Operator parseFilterComparisonOperator(const std::string &op); - -} - -#endif |