// Copyright Benoit Blanchon 2014 // MIT License // // Arduino JSON library // https://github.com/bblanchon/ArduinoJson #pragma once #include "Internals/JsonNodeWrapper.hpp" namespace ArduinoJson { class JsonArray; class JsonArrayIterator; class JsonBuffer; class JsonObject; class JsonObjectIterator; class JsonObjectKeyValue; class JsonValue : public Internals::JsonNodeWrapper { friend class JsonArray; friend class JsonArrayIterator; friend class JsonBuffer; friend class JsonObject; friend class JsonObjectKeyValue; public: JsonValue() {} void operator=(bool value); void operator=(const char *value); void operator=(double value) { set(value, 2); } void operator=(int value); void operator=(const JsonValue &value) { duplicate(value); } void operator=(const Internals::JsonNodeWrapper &object) { duplicate(object); } operator bool() const; operator const char *() const; operator double() const; operator long() const; operator int() const { return operator long(); } operator JsonArray() const; operator JsonObject() const; void set(double value, int decimals); template T as() { return static_cast(*this); } private: explicit JsonValue(Internals::JsonNode *node) : JsonNodeWrapper(node) {} }; }