Implements fl::anonymous_namespace{json.cpp.hpp}::JsonVisitor.
Definition at line 931 of file json.cpp.hpp.
931 {
932
936 }
937
938 switch (token) {
939
940
941
942
943
944
945
946
947#if FL_PLATFORM_HAS_LARGE_MEMORY
949 fl::vector<u8> vec;
954 }
955
957 fl::vector<i16> vec;
962 }
963
965 fl::vector<float> vec;
970 }
971#endif
972
975
979 }
980
983 auto obj_val =
mStack.back().value;
986
988 }
990 }
991
994
998 }
999
1002
1006
1008 }
1010 }
1011
1013
1015 mStack.back().pending_key.empty()) {
1016
1019 } else {
1021 }
1022 } else {
1023
1024 fl::string str;
1027 } else {
1029 }
1032 }
1033
1035 }
1036
1038
1039 bool is_float = false;
1040 for (
size_t i = 0; i <
value.size(); i++) {
1042 is_float = true;
1043 break;
1044 }
1045 }
1046
1047 fl::shared_ptr<json_value> num_val;
1048#if FL_PLATFORM_HAS_LARGE_MEMORY
1049 if (is_float) {
1050
1051
1052
1053
1056 } else {
1058 i64 i64_val =
static_cast<i64>(i);
1060 }
1061#else
1062
1063
1064
1065
1066
1067
1068
1069 (void)is_float;
1071 i64 i64_val =
static_cast<i64>(i);
1073#endif
1074
1077 }
1078
1082
1086
1090
1093
1095
1098
1099 default:
1101 }
1102 }
fl::StringInterner mInterner
void push_value(const fl::shared_ptr< json_value > &val)
bool parse_float_array(const fl::span< const char > &span, fl::vector< T > &out_vec)
fl::vector_inlined< StackFrame, 8 > mStack
bool parse_int_array(const fl::span< const char > &span, fl::vector< T > &out_vec)
fl::string unescape_string(const fl::span< const char > &span)
bool has_escape_sequences(const fl::span< const char > &span)
constexpr int MAX_JSON_DEPTH
fl::shared_ptr< json_value > optimize_array(fl::shared_ptr< json_value > array_val)
constexpr remove_reference< T >::type && move(T &&t) FL_NO_EXCEPT
constexpr int type_rank< T >::value
u32 ieee754_parse_decimal(const char *s, fl::size len, fl::size *consumed) FL_NO_EXCEPT
Parse a decimal floating-point number into IEEE 754 single-precision bits.
int parseInt(const char *str, fl::size len)
Parse an integer from a character buffer.
shared_ptr< T > make_shared(Args &&... args) FL_NO_EXCEPT
fl::vector< fl::shared_ptr< json_value > > json_array
To bit_cast(const From &from) FL_NO_EXCEPT
fl::flat_map< fl::string, fl::shared_ptr< json_value >, fl::StringFastLess > json_object
References fl::anonymous_namespace{json.cpp.hpp}::JsonBuilder::StackFrame::ARRAY, fl::anonymous_namespace{json.cpp.hpp}::ARRAY_FLOAT, fl::anonymous_namespace{json.cpp.hpp}::ARRAY_INT16, fl::anonymous_namespace{json.cpp.hpp}::ARRAY_UINT8, fl::bit_cast(), fl::anonymous_namespace{json.cpp.hpp}::COLON, fl::anonymous_namespace{json.cpp.hpp}::COMMA, fl::anonymous_namespace{json.cpp.hpp}::END_OF_INPUT, fl::anonymous_namespace{json.cpp.hpp}::ERROR, fl::anonymous_namespace{json.cpp.hpp}::FALSE, FL_ERROR, fl::anonymous_namespace{json.cpp.hpp}::has_escape_sequences(), fl::ieee754_parse_decimal(), fl::anonymous_namespace{json.cpp.hpp}::KEEP_GOING, fl::anonymous_namespace{json.cpp.hpp}::LBRACE, fl::anonymous_namespace{json.cpp.hpp}::LBRACKET, fl::make_shared(), fl::anonymous_namespace{json.cpp.hpp}::MAX_JSON_DEPTH, mDepth, mInterner, fl::move(), mStack, fl::anonymous_namespace{json.cpp.hpp}::NULL_VALUE, fl::anonymous_namespace{json.cpp.hpp}::NUMBER, fl::anonymous_namespace{json.cpp.hpp}::JsonBuilder::StackFrame::OBJECT, fl::anonymous_namespace{json.cpp.hpp}::optimize_array(), parse_float_array(), parse_int_array(), fl::parseInt(), push_value(), fl::anonymous_namespace{json.cpp.hpp}::RBRACE, fl::anonymous_namespace{json.cpp.hpp}::RBRACKET, fl::anonymous_namespace{json.cpp.hpp}::STRING, fl::anonymous_namespace{json.cpp.hpp}::TRUE, fl::type_rank< T >::value, and fl::anonymous_namespace{json.cpp.hpp}::unescape_string().