diff options
Diffstat (limited to 'include/mbgl/style/filter_expression_private.hpp')
-rw-r--r-- | include/mbgl/style/filter_expression_private.hpp | 118 |
1 files changed, 0 insertions, 118 deletions
diff --git a/include/mbgl/style/filter_expression_private.hpp b/include/mbgl/style/filter_expression_private.hpp deleted file mode 100644 index 381f8f617c..0000000000 --- a/include/mbgl/style/filter_expression_private.hpp +++ /dev/null @@ -1,118 +0,0 @@ -#include <mbgl/util/optional.hpp> -#include <mbgl/style/value_comparison.hpp> - -namespace mbgl { - -template <class Extractor> -struct Evaluator : public mapbox::util::static_visitor<bool> -{ - const Extractor& extractor; - - Evaluator(const Extractor& extractor_) - : extractor(extractor_) {} - - template <class E> - bool operator()(const E& e) const { return e.evaluate(extractor); } -}; - -template <class Extractor> -bool evaluate(const FilterExpression& expression, const Extractor& extractor) { - return mapbox::util::apply_visitor(Evaluator<Extractor>(extractor), expression); -}; - -template <class Extractor> -bool EqualsExpression::evaluate(const Extractor& extractor) const { - mapbox::util::optional<Value> actual = extractor.getValue(key); - return actual && util::relaxed_equal(*actual, value); -} - -template <class Extractor> -bool NotEqualsExpression::evaluate(const Extractor& extractor) const { - mapbox::util::optional<Value> actual = extractor.getValue(key); - return !actual || util::relaxed_not_equal(*actual, value); -} - -template <class Extractor> -bool LessThanExpression::evaluate(const Extractor& extractor) const { - mapbox::util::optional<Value> actual = extractor.getValue(key); - return actual && util::relaxed_less(*actual, value); -} - -template <class Extractor> -bool LessThanEqualsExpression::evaluate(const Extractor& extractor) const { - mapbox::util::optional<Value> actual = extractor.getValue(key); - return actual && util::relaxed_less_equal(*actual, value); -} - -template <class Extractor> -bool GreaterThanExpression::evaluate(const Extractor& extractor) const { - mapbox::util::optional<Value> actual = extractor.getValue(key); - return actual && util::relaxed_greater(*actual, value); -} - -template <class Extractor> -bool GreaterThanEqualsExpression::evaluate(const Extractor& extractor) const { - mapbox::util::optional<Value> actual = extractor.getValue(key); - return actual && util::relaxed_greater_equal(*actual, value); -} - -template <class Extractor> -bool InExpression::evaluate(const Extractor& extractor) const { - mapbox::util::optional<Value> actual = extractor.getValue(key); - if (!actual) - return false; - for (const auto& v: values) { - if (util::relaxed_equal(*actual, v)) { - return true; - } - } - return false; -} - -template <class Extractor> -bool NotInExpression::evaluate(const Extractor& extractor) const { - mapbox::util::optional<Value> actual = extractor.getValue(key); - if (!actual) - return true; - for (const auto& v: values) { - if (util::relaxed_equal(*actual, v)) { - return false; - } - } - return true; -} - -template <class Extractor> -bool AnyExpression::evaluate(const Extractor& extractor) const { - Evaluator<Extractor> evaluator(extractor); - for (const auto& e: expressions) { - if (mapbox::util::apply_visitor(evaluator, e)) { - return true; - } - } - return false; -} - -template <class Extractor> -bool AllExpression::evaluate(const Extractor& extractor) const { - Evaluator<Extractor> evaluator(extractor); - for (const auto& e: expressions) { - if (!mapbox::util::apply_visitor(evaluator, e)) { - return false; - } - } - return true; -} - -template <class Extractor> -bool NoneExpression::evaluate(const Extractor& extractor) const { - Evaluator<Extractor> evaluator(extractor); - for (const auto& e: expressions) { - if (mapbox::util::apply_visitor(evaluator, e)) { - return false; - } - } - return true; -} - -} |