diff options
author | Asheem Mamoowala <asheem.mamoowala@mapbox.com> | 2018-06-29 12:56:44 -0700 |
---|---|---|
committer | Asheem Mamoowala <asheem.mamoowala@mapbox.com> | 2018-07-23 09:12:26 -0700 |
commit | 1d8664a2ae3822ba4d45973640c0068c65a237e7 (patch) | |
tree | 62160340b72f987ac340c5807552a7033e9269ac /include | |
parent | bfe714eebe1fd5a8563db92e46220775aa82e3e0 (diff) | |
download | qtlocation-mapboxgl-1d8664a2ae3822ba4d45973640c0068c65a237e7.tar.gz |
Keep original input for filters using legacy syntax.
Diffstat (limited to 'include')
-rw-r--r-- | include/mbgl/style/filter.hpp | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/include/mbgl/style/filter.hpp b/include/mbgl/style/filter.hpp index ce4015bb69..c9dc9fb1ec 100644 --- a/include/mbgl/style/filter.hpp +++ b/include/mbgl/style/filter.hpp @@ -11,14 +11,18 @@ namespace mbgl { namespace style { - + class Filter { public: optional<std::shared_ptr<const expression::Expression>> expression; - +private: + optional<mbgl::Value> legacyFilter; +public: Filter() : expression() {} - Filter(expression::ParseResult _expression) : expression(std::move(*_expression)) { + Filter(expression::ParseResult _expression, optional<mbgl::Value> _filter = {}) + : expression(std::move(*_expression)), + legacyFilter(std::move(_filter)){ assert(!expression || *expression != nullptr); } @@ -35,6 +39,16 @@ public: friend bool operator!=(const Filter& lhs, const Filter& rhs) { return !(lhs == rhs); } + + mbgl::Value serialize() const { + if (legacyFilter) { + return *legacyFilter; + } + else if (expression) { + return (**expression).serialize(); + } + return NullValue(); + } }; } // namespace style |