// ArduinoJson - https://arduinojson.org // Copyright Benoit Blanchon 2014-2021 // MIT License #pragma once #include "lib/ArduinoJson/Polyfills/attributes.hpp" #include "lib/ArduinoJson/Polyfills/type_traits.hpp" #include "lib/ArduinoJson/Strings/StringAdapters.hpp" namespace ARDUINOJSON_NAMESPACE { template class MemberProxy; template class ObjectShortcuts { public: // containsKey(const std::string&) const // containsKey(const String&) const template FORCE_INLINE typename enable_if::value, bool>::type containsKey(const TString &key) const; // containsKey(char*) const // containsKey(const char*) const // containsKey(const __FlashStringHelper*) const template FORCE_INLINE typename enable_if::value, bool>::type containsKey(TChar *key) const; // operator[](const std::string&) const // operator[](const String&) const template FORCE_INLINE typename enable_if::value, MemberProxy >::type operator[](const TString &key) const; // operator[](char*) const // operator[](const char*) const // operator[](const __FlashStringHelper*) const template FORCE_INLINE typename enable_if::value, MemberProxy >::type operator[](TChar *key) const; // createNestedArray(const std::string&) const // createNestedArray(const String&) const template FORCE_INLINE ArrayRef createNestedArray(const TString &key) const; // createNestedArray(char*) const // createNestedArray(const char*) const // createNestedArray(const __FlashStringHelper*) const template FORCE_INLINE ArrayRef createNestedArray(TChar *key) const; // createNestedObject(const std::string&) const // createNestedObject(const String&) const template ObjectRef createNestedObject(const TString &key) const; // createNestedObject(char*) const // createNestedObject(const char*) const // createNestedObject(const __FlashStringHelper*) const template ObjectRef createNestedObject(TChar *key) const; private: const TObject *impl() const { return static_cast(this); } }; } // namespace ARDUINOJSON_NAMESPACE