diff --git a/src/ArduinoJson/Variant/VariantData.hpp b/src/ArduinoJson/Variant/VariantData.hpp index 27128706..144ba46e 100644 --- a/src/ArduinoJson/Variant/VariantData.hpp +++ b/src/ArduinoJson/Variant/VariantData.hpp @@ -68,6 +68,10 @@ class VariantData { case VALUE_IS_BOOLEAN: return visitor.visitBoolean(_content.asBoolean != 0); + case VALUE_IS_POINTER: + ARDUINOJSON_ASSERT(_content.asPointer != 0); + return _content.asPointer->accept(visitor); + default: return visitor.visitNull(); } @@ -208,6 +212,11 @@ class VariantData { setType(VALUE_IS_NULL); } + void setPointer(VariantData *value) { + setType(VALUE_IS_POINTER); + _content.asPointer = value; + } + void setString(String s) { ARDUINOJSON_ASSERT(s); if (s.isLinked())