FastLED 3.9.15
Loading...
Searching...
No Matches

◆ clone_array()

fl::optional< json_array > fl::json_value::clone_array ( ) const
inline

Definition at line 1067 of file types.h.

1067 {
1068 auto ptr = data.ptr<json_array>();
1069 if (ptr) return fl::optional<json_array>(*ptr);
1070 // Handle specialized array types by converting them to regular json_array
1071 if (data.is<fl::vector<i16>>()) {
1072 auto audioPtr = data.ptr<fl::vector<i16>>();
1074 for (const auto& item : *audioPtr) {
1075 result.push_back(fl::make_shared<json_value>(static_cast<i64>(item)));
1076 }
1078 }
1079 if (data.is<fl::vector<u8>>()) {
1080 auto bytePtr = data.ptr<fl::vector<u8>>();
1082 for (const auto& item : *bytePtr) {
1083 result.push_back(fl::make_shared<json_value>(static_cast<i64>(item)));
1084 }
1086 }
1087 if (data.is<fl::vector<float>>()) {
1088 auto floatPtr = data.ptr<fl::vector<float>>();
1090 for (const auto& item : *floatPtr) {
1091 result.push_back(fl::make_shared<json_value>(item));
1092 }
1094 }
1095 return fl::nullopt;
1096 }
Optional< T > optional
Definition optional.h:16
fl::i64 i64
Definition s16x16x4.h:222
shared_ptr< T > make_shared(Args &&... args) FL_NOEXCEPT
Definition shared_ptr.h:414
fl::vector< fl::shared_ptr< json_value > > json_array
Definition types.h:33
expected< T, E > result
Alias for expected (Rust-style naming)
Definition result.h:31
constexpr nullopt_t nullopt
Definition optional.h:13
variant_t data
Definition types.h:700

References data, FL_NOEXCEPT, fl::make_shared(), and fl::nullopt.

Referenced by operator[]().

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