diff options
Diffstat (limited to 'modules/skottie/src/SkottieJson.h')
-rw-r--r-- | modules/skottie/src/SkottieJson.h | 62 |
1 files changed, 10 insertions, 52 deletions
diff --git a/modules/skottie/src/SkottieJson.h b/modules/skottie/src/SkottieJson.h index 76e17c610e..98ee25a3ce 100644 --- a/modules/skottie/src/SkottieJson.h +++ b/modules/skottie/src/SkottieJson.h @@ -8,68 +8,26 @@ #ifndef SkottieJson_DEFINED #define SkottieJson_DEFINED +#include "SkJSON.h" #include "SkRefCnt.h" -#include "rapidjson/document.h" - class SkData; class SkStream; class SkString; namespace skottie { -namespace json { - -class ValueRef { -public: - ValueRef() : fValue(nullptr) {} - ValueRef(const rapidjson::Value& v) : fValue(v.IsNull() ? nullptr : &v) {} - - bool isNull() const { return !fValue; } - bool isObject() const { return fValue && fValue->IsObject(); } - bool isArray() const { return fValue && fValue->IsArray(); } - - template <typename T> - bool to(T*) const; +template <typename T> +bool Parse(const skjson::Value&, T*); - template <typename T> - T toDefault(const T& defaultValue) const { - T v; - if (!this->to<T>(&v)) { - v = defaultValue; - } - return v; +template <typename T> +T ParseDefault(const skjson::Value& v, const T& defaultValue) { + T res; + if (!Parse<T>(v, &res)) { + res = defaultValue; } - - size_t size() const; - ValueRef operator[](size_t i) const; - ValueRef operator[](const char* key) const; - - bool operator==(const ValueRef& other) const { return fValue == other.fValue; } - bool operator!=(const ValueRef& other) const { return !(*this == other); } - - const rapidjson::Value* begin() const; - const rapidjson::Value* end() const; - - SkString toString() const; - -private: - const rapidjson::Value* fValue; -}; - -// Container for the json DOM -class Document { -public: - explicit Document(SkStream*); - - ValueRef root() const { return fDocument; } - -private: - sk_sp<SkData> fData; // raw data - rapidjson::Document fDocument; // in-place json DOM -}; - -} // namespace json + return res; +} } // namespace skottie |