@@ -102,60 +102,14 @@ class VariantImpl {
102102
103103 template <typename TVisitor>
104104 typename TVisitor::result_type accept (TVisitor& visit) {
105- if (!data_)
106- return visit.visit (nullptr );
107-
108- #if ARDUINOJSON_USE_8_BYTE_POOL
109- auto eightByteValue = getEightByte ();
110- #endif
111- switch (data_->type ) {
112- case VariantType::Float:
113- return visit.visit (data_->content .asFloat );
114-
115- #if ARDUINOJSON_USE_DOUBLE
116- case VariantType::Double:
117- return visit.visit (eightByteValue->asDouble );
118- #endif
119-
120- case VariantType::Array:
121- return visit.visit (asArray ());
122-
123- case VariantType::Object:
124- return visit.visit (asObject ());
125-
126- case VariantType::TinyString:
127- return visit.visit (JsonString (data_->content .asTinyString ));
128-
129- case VariantType::LongString:
130- return visit.visit (JsonString (data_->content .asStringNode ->data ,
131- data_->content .asStringNode ->length ));
132-
133- case VariantType::RawString:
134- return visit.visit (RawString (data_->content .asStringNode ->data ,
135- data_->content .asStringNode ->length ));
136-
137- case VariantType::Int32:
138- return visit.visit (static_cast <JsonInteger>(data_->content .asInt32 ));
139-
140- case VariantType::Uint32:
141- return visit.visit (static_cast <JsonUInt>(data_->content .asUint32 ));
142-
143- #if ARDUINOJSON_USE_LONG_LONG
144- case VariantType::Int64:
145- return visit.visit (eightByteValue->asInt64 );
146-
147- case VariantType::Uint64:
148- return visit.visit (eightByteValue->asUint64 );
149- #endif
150-
151- case VariantType::Boolean:
152- return visit.visit (data_->content .asBoolean != 0 );
153-
154- default :
155- return visit.visit (nullptr );
156- }
105+ return accept (visit, data_, resources_);
157106 }
158107
108+ template <typename TVisitor>
109+ static typename TVisitor::result_type accept (TVisitor& visit,
110+ VariantData* data_,
111+ ResourceManager* resources_);
112+
159113 VariantData* addElement () {
160114 auto array = isNull () ? toArray () : asArray ();
161115 return array.addElement ();
0 commit comments