summaryrefslogtreecommitdiff
path: root/src/style/value.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/style/value.cpp')
-rw-r--r--src/style/value.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/style/value.cpp b/src/style/value.cpp
new file mode 100644
index 0000000000..8da66966fc
--- /dev/null
+++ b/src/style/value.cpp
@@ -0,0 +1,25 @@
+#include <llmr/style/value.hpp>
+
+llmr::Value llmr::parseValue(pbf data) {
+ while (data.next()) {
+ if (data.tag == 1) { // string_value
+ return data.string();
+ } else if (data.tag == 2) { // float_value
+ return data.float32();
+ } else if (data.tag == 3) { // double_value
+ return data.float64();
+ } else if (data.tag == 4) { // int_value
+ return data.varint<int64_t>();
+ } else if (data.tag == 5) { // uint_value
+ return data.varint<uint64_t>();
+ } else if (data.tag == 6) { // sint_value
+ return data.svarint<int64_t>();
+ } else if (data.tag == 7) { // bool_value
+ return data.boolean();
+ } else {
+ data.skip();
+ }
+ }
+
+ return false;
+}