[core][node] Serialize formatted expression's text-color option

This enables proper round-tripping for serialized format expression.
This commit is contained in:
Alexander Shalamov
2019-08-15 17:18:42 +03:00
parent 2f9a544f9b
commit 148d65bced
3 changed files with 14 additions and 0 deletions

View File

@@ -1,6 +1,7 @@
#pragma once
#include <mbgl/util/optional.hpp>
#include <mbgl/util/feature.hpp>
#include <cassert>
#include <string>
@@ -39,6 +40,7 @@ public:
static optional<Color> parse(const std::string&);
std::string stringify() const;
std::array<double, 4> toArray() const;
mbgl::Value toObject() const;
};
inline bool operator==(const Color& colorA, const Color& colorB) {

View File

@@ -192,6 +192,11 @@ struct ToValue {
} else {
serializedSection.emplace("fontStack", mbgl::NullValue());
}
if (section.textColor) {
serializedSection.emplace("textColor", section.textColor->toObject());
} else {
serializedSection.emplace("textColor", mbgl::NullValue());
}
sections.emplace_back(serializedSection);
}
serialized.emplace("sections", sections);

View File

@@ -44,4 +44,11 @@ std::array<double, 4> Color::toArray() const {
}
}
mbgl::Value Color::toObject() const {
return std::unordered_map<std::string, mbgl::Value>{{"r", double(r)},
{"g", double(g)},
{"b", double(b)},
{"a", double(a)}};
}
} // namespace mbgl