diff options
Diffstat (limited to 'source/core')
-rw-r--r-- | source/core/StarJsonExtra.cpp | 18 | ||||
-rw-r--r-- | source/core/StarJsonExtra.hpp | 3 |
2 files changed, 19 insertions, 2 deletions
diff --git a/source/core/StarJsonExtra.cpp b/source/core/StarJsonExtra.cpp index 7a660d1..aed4989 100644 --- a/source/core/StarJsonExtra.cpp +++ b/source/core/StarJsonExtra.cpp @@ -301,7 +301,7 @@ StringList jsonToStringList(Json const& v) { Json jsonFromStringList(List<String> const& v) { JsonArray result; - for (auto e : v) + for (auto& e : v) result.push_back(e); return result; } @@ -322,7 +322,7 @@ StringSet jsonToStringSet(Json const& v) { Json jsonFromStringSet(StringSet const& v) { JsonArray result; - for (auto e : v) + for (auto& e : v) result.push_back(e); return result; } @@ -369,6 +369,20 @@ List<Color> jsonToColorList(Json const& v) { return result; } +List<Directives> jsonToDirectivesList(Json const& v) { + List<Directives> result; + for (auto const& entry : v.iterateArray()) + result.append(move(entry.toString())); + return result; +} + +Json jsonFromDirectivesList(List<Directives> const& v) { + JsonArray result; + for (auto& e : v) + result.push_back(e.toString()); + return result; +} + Json weightedChoiceFromJson(Json const& source, Json const& default_) { if (source.isNull()) return default_; diff --git a/source/core/StarJsonExtra.hpp b/source/core/StarJsonExtra.hpp index 3bf5b9c..cfe7efb 100644 --- a/source/core/StarJsonExtra.hpp +++ b/source/core/StarJsonExtra.hpp @@ -6,6 +6,7 @@ #include "StarColor.hpp" #include "StarSet.hpp" #include "StarWeightedPool.hpp" +#include "StarDirectives.hpp" namespace Star { @@ -81,6 +82,8 @@ List<Vec2U> jsonToVec2UList(Json const& v); List<Vec2F> jsonToVec2FList(Json const& v); List<Vec4B> jsonToVec4BList(Json const& v); List<Color> jsonToColorList(Json const& v); +List<Directives> jsonToDirectivesList(Json const& v); +Json jsonFromDirectivesList(List<Directives> const& v); Json weightedChoiceFromJson(Json const& source, Json const& default_); |