// ArduinoJson - https://arduinojson.org // Copyright Benoit Blanchon 2014-2021 // MIT License #pragma once #include #include #include #include namespace ARDUINOJSON_NAMESPACE { template class StringAdapter > { public: typedef std::basic_string string_type; StringAdapter(const string_type& str) : _str(&str) {} void copyTo(char* p, size_t n) const { memcpy(p, _str->c_str(), n); } bool isNull() const { return false; } int compare(const char* other) const { if (!other) return 1; return _str->compare(other); } char operator[](size_t i) const { ARDUINOJSON_ASSERT(i <= size()); return _str->operator[](i); } size_t size() const { return _str->size(); } typedef storage_policies::store_by_copy storage_policy; private: const string_type* _str; }; } // namespace ARDUINOJSON_NAMESPACE