summaryrefslogtreecommitdiff
path: root/include/mbgl/util/feature.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/mbgl/util/feature.hpp')
-rw-r--r--include/mbgl/util/feature.hpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/include/mbgl/util/feature.hpp b/include/mbgl/util/feature.hpp
index 56db250de0..d2a23cc5b0 100644
--- a/include/mbgl/util/feature.hpp
+++ b/include/mbgl/util/feature.hpp
@@ -1,6 +1,7 @@
#pragma once
#include <mbgl/util/optional.hpp>
+#include <mbgl/util/string.hpp>
#include <mapbox/feature.hpp>
@@ -32,4 +33,27 @@ optional<T> numericValue(const Value& value) {
});
}
+inline optional<std::string> featureIDtoString(const FeatureIdentifier& id) {
+ if (id.is<NullValue>()) {
+ return nullopt;
+ }
+
+ return id.match(
+ [] (const std::string& value_) {
+ return value_;
+ },
+ [] (uint64_t value_) {
+ return util::toString(value_);
+ },
+ [] (int64_t value_) {
+ return util::toString(value_);
+ },
+ [] (double value_) {
+ return util::toString(value_);
+ },
+ [] (const auto&) -> optional<std::string> {
+ return nullopt;
+ });
+}
+
} // namespace mbgl