// ArduinoJson - arduinojson.org // Copyright Benoit Blanchon 2014-2021 // MIT License #pragma once #include #include #include namespace ARDUINOJSON_NAMESPACE { template inline typename enable_if::value, T>::type variantAs( const VariantData* _data) { return ArrayConstRef(variantAsArray(_data)); } template inline typename enable_if::value, T>::type variantAs( const VariantData* _data) { return ObjectConstRef(variantAsObject(_data)); } template inline typename enable_if::value, T>::type variantAs(const VariantData* _data) { return VariantConstRef(_data); } template inline typename enable_if::value, T>::type variantAs( const VariantData* _data) { const char* cstr = _data != 0 ? _data->asString() : 0; if (cstr) return T(cstr); T s; serializeJson(VariantConstRef(_data), s); return s; } template <> inline ArrayRef variantAs(VariantData* data, MemoryPool* pool) { return ArrayRef(pool, data != 0 ? data->asArray() : 0); } template <> inline ObjectRef variantAs(VariantData* data, MemoryPool* pool) { return ObjectRef(pool, data != 0 ? data->asObject() : 0); } template <> inline VariantRef variantAs(VariantData* data, MemoryPool* pool) { return VariantRef(pool, data); } } // namespace ARDUINOJSON_NAMESPACE