summaryrefslogtreecommitdiff
path: root/src/mbgl/style/expression/dsl.cpp
diff options
context:
space:
mode:
authorChris Loer <chris.loer@gmail.com>2018-10-02 17:03:50 -0700
committerChris Loer <chris.loer@mapbox.com>2018-10-15 13:15:46 -0700
commitce76bde13d0f4381ee861f81daf636defaff0bc5 (patch)
treee37d93d14fc64620069bac5488bae871af2fa431 /src/mbgl/style/expression/dsl.cpp
parentbc718257748f1ad87658e85f8c31b574afca57a9 (diff)
downloadqtlocation-mapboxgl-ce76bde13d0f4381ee861f81daf636defaff0bc5.tar.gz
[core] Initial implementation of 'format' expression
Diffstat (limited to 'src/mbgl/style/expression/dsl.cpp')
-rw-r--r--src/mbgl/style/expression/dsl.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/mbgl/style/expression/dsl.cpp b/src/mbgl/style/expression/dsl.cpp
index c6318fb637..f5ff83a9e7 100644
--- a/src/mbgl/style/expression/dsl.cpp
+++ b/src/mbgl/style/expression/dsl.cpp
@@ -7,6 +7,7 @@
#include <mbgl/style/expression/step.hpp>
#include <mbgl/style/expression/interpolate.hpp>
#include <mbgl/style/expression/compound_expression.hpp>
+#include <mbgl/style/expression/format_expression.hpp>
namespace mbgl {
namespace style {
@@ -77,6 +78,10 @@ std::unique_ptr<Expression> toString(std::unique_ptr<Expression> value) {
return std::make_unique<Coercion>(type::String, vec(std::move(value)));
}
+std::unique_ptr<Expression> toFormatted(std::unique_ptr<Expression> value) {
+ return std::make_unique<Coercion>(type::Formatted, vec(std::move(value)));
+}
+
std::unique_ptr<Expression> get(const char* value) {
return get(literal(value));
}
@@ -181,6 +186,16 @@ std::unique_ptr<Expression> concat(std::vector<std::unique_ptr<Expression>> inpu
return compound("concat", std::move(inputs));
}
+std::unique_ptr<Expression> format(const char* value) {
+ return std::make_unique<Literal>(Formatted(value));
+}
+
+std::unique_ptr<Expression> format(std::unique_ptr<Expression> input) {
+ std::vector<FormatExpressionSection> sections;
+ sections.emplace_back(std::move(input), nullopt, nullopt);
+ return std::make_unique<FormatExpression>(sections);
+}
+
} // namespace dsl
} // namespace expression
} // namespace style