FastLED 3.10.6
Loading...
Searching...
No Matches

◆ push_value()

void fl::anonymous_namespace{json.cpp.hpp}::JsonBuilder::push_value ( const fl::shared_ptr< json_value > & val)
inlineprivate

Definition at line 905 of file json.cpp.hpp.

905 {
906 if (mStack.empty()) {
907 mRoot = val;
908 } else {
909 StackFrame& top = mStack.back();
910
911 if (top.type == StackFrame::OBJECT) {
912 // Attach to object with pending key
913 auto obj = top.value->data.ptr<json_object>();
914 if (obj && !top.pending_key.empty()) {
915 (*obj)[top.pending_key] = val;
916 top.pending_key.clear();
917 }
918 } else {
919 // Attach to array
920 auto arr = top.value->data.ptr<json_array>();
921 if (arr) {
922 arr->push_back(val);
923 }
924 }
925 }
926 }
fl::vector_inlined< StackFrame, 8 > mStack
Definition json.cpp.hpp:809
fl::vector< fl::shared_ptr< json_value > > json_array
Definition types.h:54
fl::flat_map< fl::string, fl::shared_ptr< json_value >, fl::StringFastLess > json_object
Definition types.h:55

References fl::basic_string::clear(), fl::basic_string::empty(), mRoot, mStack, fl::anonymous_namespace{json.cpp.hpp}::JsonBuilder::StackFrame::OBJECT, fl::anonymous_namespace{json.cpp.hpp}::JsonBuilder::StackFrame::pending_key, fl::anonymous_namespace{json.cpp.hpp}::JsonBuilder::StackFrame::type, and fl::anonymous_namespace{json.cpp.hpp}::JsonBuilder::StackFrame::value.

Referenced by on_token().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: