// ArduinoJson - https://arduinojson.org // Copyright Benoit Blanchon 2014-2021 // MIT License #pragma once #include // size_t #include // strcmp #include #include #include #include namespace ARDUINOJSON_NAMESPACE { template <> class StringAdapter { public: StringAdapter(const char* str = 0) : _str(str) {} int compare(const char* other) const { return safe_strcmp(_str, other); } bool isNull() const { return !_str; } size_t size() const { if (!_str) return 0; return strlen(_str); } char operator[](size_t i) const { ARDUINOJSON_ASSERT(_str != 0); ARDUINOJSON_ASSERT(i <= size()); return _str[i]; } const char* data() const { return _str; } typedef storage_policies::store_by_address storage_policy; protected: const char* _str; }; template class StringAdapter : public StringAdapter { public: StringAdapter(const char* s) : StringAdapter(s) {} }; } // namespace ARDUINOJSON_NAMESPACE