summaryrefslogtreecommitdiff
path: root/src/mbgl/style/expression/compound_expression.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/style/expression/compound_expression.cpp')
-rw-r--r--src/mbgl/style/expression/compound_expression.cpp17
1 files changed, 6 insertions, 11 deletions
diff --git a/src/mbgl/style/expression/compound_expression.cpp b/src/mbgl/style/expression/compound_expression.cpp
index 05925810e4..6a4894a478 100644
--- a/src/mbgl/style/expression/compound_expression.cpp
+++ b/src/mbgl/style/expression/compound_expression.cpp
@@ -226,8 +226,8 @@ using Definition = CompoundExpressionRegistry::Definition;
Value featureIdAsExpressionValue(EvaluationContext params) {
assert(params.feature);
auto id = params.feature->getID();
- if (!id) return Null;
- return id->match([](const auto& idid) {
+ if (id.is<NullValue>()) return Null;
+ return id.match([](const auto& idid) {
return toExpressionValue(mbgl::Value(idid));
});
};
@@ -278,8 +278,7 @@ optional<std::string> featurePropertyAsString(EvaluationContext params, const st
optional<double> featureIdAsDouble(EvaluationContext params) {
assert(params.feature);
auto id = params.feature->getID();
- if (!id) return optional<double>();
- return id->match(
+ return id.match(
[](double value) { return value; },
[](uint64_t value) { return optional<double>(static_cast<double>(value)); },
[](int64_t value) { return optional<double>(static_cast<double>(value)); },
@@ -290,8 +289,7 @@ optional<double> featureIdAsDouble(EvaluationContext params) {
optional<std::string> featureIdAsString(EvaluationContext params) {
assert(params.feature);
auto id = params.feature->getID();
- if (!id) return optional<std::string>();
- return id->match(
+ return id.match(
[](std::string value) { return value; },
[](auto) { return optional<std::string>(); }
);
@@ -417,10 +415,7 @@ std::unordered_map<std::string, CompoundExpressionRegistry::Definition> initiali
}
auto id = params.feature->getID();
- if (!id) {
- return Null;
- }
- return id->match(
+ return id.match(
[](const auto& idValue) {
return toExpressionValue(mbgl::Value(idValue));
}
@@ -606,7 +601,7 @@ std::unordered_map<std::string, CompoundExpressionRegistry::Definition> initiali
define("filter-has-id", [](const EvaluationContext& params) -> Result<bool> {
assert(params.feature);
- return bool(params.feature->getID());
+ return !params.feature->getID().is<NullValue>();
});
define("filter-type-in", [](const EvaluationContext& params, const Varargs<std::string>& types) -> Result<bool> {