diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2016-12-19 17:10:51 -0800 |
---|---|---|
committer | Minh Nguyễn <mxn@1ec5.org> | 2017-01-04 08:52:41 -0800 |
commit | 83309fd369c9623a1e2638f98f75206609d44258 (patch) | |
tree | f20ea0664e5ebd1f7dcc9c8739765d151056cf18 /include/mbgl/style | |
parent | 01717af59f5700cc22df17485bf2ba56eab65968 (diff) | |
download | qtlocation-mapboxgl-83309fd369c9623a1e2638f98f75206609d44258.tar.gz |
[core] Filter operator==
Diffstat (limited to 'include/mbgl/style')
-rw-r--r-- | include/mbgl/style/filter.hpp | 60 |
1 files changed, 59 insertions, 1 deletions
diff --git a/include/mbgl/style/filter.hpp b/include/mbgl/style/filter.hpp index dd2b20cd0d..e5d8081d82 100644 --- a/include/mbgl/style/filter.hpp +++ b/include/mbgl/style/filter.hpp @@ -6,85 +6,143 @@ #include <string> #include <vector> +#include <tuple> namespace mbgl { namespace style { class Filter; -class NullFilter {}; +class NullFilter { +public: + friend bool operator==(const NullFilter&, const NullFilter&) { + return true; + } +}; class EqualsFilter { public: std::string key; Value value; + + friend bool operator==(const EqualsFilter& lhs, const EqualsFilter& rhs) { + return std::tie(lhs.key, lhs.value) == std::tie(rhs.key, rhs.value); + } }; class NotEqualsFilter { public: std::string key; Value value; + + friend bool operator==(const NotEqualsFilter& lhs, const NotEqualsFilter& rhs) { + return std::tie(lhs.key, lhs.value) == std::tie(rhs.key, rhs.value); + } }; class LessThanFilter { public: std::string key; Value value; + + friend bool operator==(const LessThanFilter& lhs, const LessThanFilter& rhs) { + return std::tie(lhs.key, lhs.value) == std::tie(rhs.key, rhs.value); + } }; class LessThanEqualsFilter { public: std::string key; Value value; + + friend bool operator==(const LessThanEqualsFilter& lhs, const LessThanEqualsFilter& rhs) { + return std::tie(lhs.key, lhs.value) == std::tie(rhs.key, rhs.value); + } }; class GreaterThanFilter { public: std::string key; Value value; + + friend bool operator==(const GreaterThanFilter& lhs, const GreaterThanFilter& rhs) { + return std::tie(lhs.key, lhs.value) == std::tie(rhs.key, rhs.value); + } }; class GreaterThanEqualsFilter { public: std::string key; Value value; + + friend bool operator==(const GreaterThanEqualsFilter& lhs, const GreaterThanEqualsFilter& rhs) { + return std::tie(lhs.key, lhs.value) == std::tie(rhs.key, rhs.value); + } }; class InFilter { public: std::string key; std::vector<Value> values; + + friend bool operator==(const InFilter& lhs, const InFilter& rhs) { + return std::tie(lhs.key, lhs.values) == std::tie(rhs.key, rhs.values); + } }; class NotInFilter { public: std::string key; std::vector<Value> values; + + friend bool operator==(const NotInFilter& lhs, const NotInFilter& rhs) { + return std::tie(lhs.key, lhs.values) == std::tie(rhs.key, rhs.values); + } }; class AnyFilter { public: std::vector<Filter> filters; + + friend bool operator==(const AnyFilter& lhs, const AnyFilter& rhs) { + return lhs.filters == rhs.filters; + } }; class AllFilter { public: std::vector<Filter> filters; + + friend bool operator==(const AllFilter& lhs, const AllFilter& rhs) { + return lhs.filters == rhs.filters; + } }; class NoneFilter { public: std::vector<Filter> filters; + + friend bool operator==(const NoneFilter& lhs, const NoneFilter& rhs) { + return lhs.filters == rhs.filters; + } }; class HasFilter { public: std::string key; + + friend bool operator==(const HasFilter& lhs, const HasFilter& rhs) { + return lhs.key == rhs.key; + } }; class NotHasFilter { public: std::string key; + + friend bool operator==(const NotHasFilter& lhs, const NotHasFilter& rhs) { + return lhs.key == rhs.key; + } }; using FilterBase = variant< |