// Copyright Benoit Blanchon 2014-2015 // MIT License // // Arduino JSON library // https://github.com/bblanchon/ArduinoJson #pragma once #include "JsonVariantBase.hpp" namespace ArduinoJson { template class JsonSubscriptBase : public JsonVariantBase { public: FORCE_INLINE TImpl& operator=(bool value) { return assign(value); } FORCE_INLINE TImpl& operator=(float value) { return assign(value); } FORCE_INLINE TImpl& operator=(double value) { return assign(value); } FORCE_INLINE TImpl& operator=(signed char value) { return assign(value); } FORCE_INLINE TImpl& operator=(signed long value) { return assign(value); } FORCE_INLINE TImpl& operator=(signed int value) { return assign(value); } FORCE_INLINE TImpl& operator=(signed short value) { return assign(value); } FORCE_INLINE TImpl& operator=(unsigned char value) { return assign(value); } FORCE_INLINE TImpl& operator=(unsigned long value) { return assign(value); } FORCE_INLINE TImpl& operator=(unsigned int value) { return assign(value); } FORCE_INLINE TImpl& operator=(unsigned short value) { return assign(value); } FORCE_INLINE TImpl& operator=(const char* value) { return assign(value); } FORCE_INLINE TImpl& operator=(const String& value) { return assign(value); } FORCE_INLINE TImpl& operator=(JsonArray& array) { return assign(array); } FORCE_INLINE TImpl& operator=(JsonObject& object) { return assign(object); } FORCE_INLINE TImpl& operator=(JsonVariant value) { return assign(value); } private: template FORCE_INLINE TImpl& assign(TValue value) { TImpl* impl = static_cast(this); impl->template set(value); return *impl; } }; }