// ArduinoJson - https://arduinojson.org // Copyright © 2014-2024, Benoit BLANCHON // MIT License #pragma once #include ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE // A special type of data that can be used to insert pregenerated JSON portions. template class SerializedValue { public: explicit SerializedValue(T str) : str_(str) {} operator T() const { return str_; } const char* data() const { return str_.c_str(); } size_t size() const { // CAUTION: the old Arduino String doesn't have size() return str_.length(); } private: T str_; }; template class SerializedValue { public: explicit SerializedValue(TChar* p, size_t n) : data_(p), size_(n) {} operator TChar*() const { return data_; } TChar* data() const { return data_; } size_t size() const { return size_; } private: TChar* data_; size_t size_; }; using RawString = SerializedValue; template inline SerializedValue serialized(T str) { return SerializedValue(str); } template inline SerializedValue serialized(TChar* p) { return SerializedValue(p, detail::adaptString(p).size()); } template inline SerializedValue serialized(TChar* p, size_t n) { return SerializedValue(p, n); } ARDUINOJSON_END_PUBLIC_NAMESPACE