@@ -63,6 +63,9 @@ class VariantData {
6363 case VariantType::Object:
6464 return visit.visit (content_.asObject );
6565
66+ case VariantType::TinyString:
67+ return visit.visit (JsonString (content_.asTinyString ));
68+
6669 case VariantType::LinkedString:
6770 return visit.visit (JsonString (content_.asLinkedString , true ));
6871
@@ -199,6 +202,9 @@ class VariantData {
199202 case VariantType::Int64:
200203 return static_cast <T>(extension->asInt64 );
201204#endif
205+ case VariantType::TinyString:
206+ str = content_.asTinyString ;
207+ break ;
202208 case VariantType::LinkedString:
203209 str = content_.asLinkedString ;
204210 break ;
@@ -241,6 +247,9 @@ class VariantData {
241247 case VariantType::Int64:
242248 return convertNumber<T>(extension->asInt64 );
243249#endif
250+ case VariantType::TinyString:
251+ str = content_.asTinyString ;
252+ break ;
244253 case VariantType::LinkedString:
245254 str = content_.asLinkedString ;
246255 break ;
@@ -281,6 +290,8 @@ class VariantData {
281290
282291 JsonString asString () const {
283292 switch (type_) {
293+ case VariantType::TinyString:
294+ return JsonString (content_.asTinyString );
284295 case VariantType::LinkedString:
285296 return JsonString (content_.asLinkedString , true );
286297 case VariantType::OwnedString:
@@ -395,7 +406,8 @@ class VariantData {
395406
396407 bool isString () const {
397408 return type_ == VariantType::LinkedString ||
398- type_ == VariantType::OwnedString;
409+ type_ == VariantType::OwnedString ||
410+ type_ == VariantType::TinyString;
399411 }
400412
401413 size_t nesting (const ResourceManager* resources) const {
@@ -509,6 +521,14 @@ class VariantData {
509521 content_.asLinkedString = s;
510522 }
511523
524+ void setTinyString (const char * s, uint8_t n) {
525+ ARDUINOJSON_ASSERT (type_ == VariantType::Null); // must call clear() first
526+ ARDUINOJSON_ASSERT (s);
527+ type_ = VariantType::TinyString;
528+ for (uint8_t i = 0 ; i < n + 1 ; i++)
529+ content_.asTinyString [i] = s[i];
530+ }
531+
512532 void setOwnedString (StringNode* s) {
513533 ARDUINOJSON_ASSERT (type_ == VariantType::Null); // must call clear() first
514534 ARDUINOJSON_ASSERT (s);
0 commit comments