summaryrefslogtreecommitdiff
path: root/src/mbgl/style/expression/let.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/style/expression/let.cpp')
-rw-r--r--src/mbgl/style/expression/let.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/mbgl/style/expression/let.cpp b/src/mbgl/style/expression/let.cpp
index fe48138ac3..242a995b0b 100644
--- a/src/mbgl/style/expression/let.cpp
+++ b/src/mbgl/style/expression/let.cpp
@@ -65,6 +65,17 @@ ParseResult Let::parse(const Convertible& value, ParsingContext& ctx) {
return ParseResult(std::make_unique<Let>(std::move(bindings_), std::move(*result_)));
}
+mbgl::Value Let::serialize() const {
+ std::vector<mbgl::Value> serialized;
+ serialized.emplace_back(getOperator());
+ for (auto entry : bindings) {
+ serialized.emplace_back(entry.first);
+ serialized.emplace_back(entry.second->serialize());
+ }
+ serialized.emplace_back(result->serialize());
+ return serialized;
+}
+
EvaluationResult Var::evaluate(const EvaluationContext& params) const {
return value->evaluate(params);
}
@@ -95,6 +106,10 @@ ParseResult Var::parse(const Convertible& value_, ParsingContext& ctx) {
return ParseResult(std::make_unique<Var>(name_, std::move(*bindingValue)));
}
+mbgl::Value Var::serialize() const {
+ return std::vector<mbgl::Value>{{ getOperator(), name }};
+}
+
} // namespace expression
} // namespace style
} // namespace mbgl