mirror of
https://github.com/eledio-devices/thirdparty-ArduinoJson.git
synced 2025-11-01 00:38:27 +01:00
Add getMemberConst() and getElementConst()
This commit is contained in:
@@ -123,27 +123,27 @@ class VariantConstRef : public VariantRefBase<const VariantData>,
|
||||
return as<T>();
|
||||
}
|
||||
|
||||
FORCE_INLINE VariantConstRef getElement(size_t index) const {
|
||||
FORCE_INLINE VariantConstRef getElementConst(size_t index) const {
|
||||
return VariantConstRef(_data != 0 ? _data->getElement(index) : 0);
|
||||
}
|
||||
|
||||
FORCE_INLINE VariantConstRef operator[](size_t index) const {
|
||||
return getElement(index);
|
||||
return getElementConst(index);
|
||||
}
|
||||
|
||||
// getMember(const std::string&) const
|
||||
// getMember(const String&) const
|
||||
// getMemberConst(const std::string&) const
|
||||
// getMemberConst(const String&) const
|
||||
template <typename TString>
|
||||
FORCE_INLINE VariantConstRef getMember(const TString &key) const {
|
||||
FORCE_INLINE VariantConstRef getMemberConst(const TString &key) const {
|
||||
return VariantConstRef(
|
||||
objectGetMember(variantAsObject(_data), adaptString(key)));
|
||||
}
|
||||
|
||||
// getMember(char*) const
|
||||
// getMember(const char*) const
|
||||
// getMember(const __FlashStringHelper*) const
|
||||
// getMemberConst(char*) const
|
||||
// getMemberConst(const char*) const
|
||||
// getMemberConst(const __FlashStringHelper*) const
|
||||
template <typename TChar>
|
||||
FORCE_INLINE VariantConstRef getMember(TChar *key) const {
|
||||
FORCE_INLINE VariantConstRef getMemberConst(TChar *key) const {
|
||||
const CollectionData *obj = variantAsObject(_data);
|
||||
return VariantConstRef(obj ? obj->getMember(adaptString(key)) : 0);
|
||||
}
|
||||
@@ -154,7 +154,7 @@ class VariantConstRef : public VariantRefBase<const VariantData>,
|
||||
FORCE_INLINE
|
||||
typename enable_if<IsString<TString>::value, VariantConstRef>::type
|
||||
operator[](const TString &key) const {
|
||||
return getMember(key);
|
||||
return getMemberConst(key);
|
||||
}
|
||||
|
||||
// operator[](char*) const
|
||||
@@ -164,7 +164,7 @@ class VariantConstRef : public VariantRefBase<const VariantData>,
|
||||
FORCE_INLINE
|
||||
typename enable_if<IsString<TChar *>::value, VariantConstRef>::type
|
||||
operator[](TChar *key) const {
|
||||
return getMember(key);
|
||||
return getMemberConst(key);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -292,6 +292,10 @@ class VariantRef : public VariantRefBase<VariantData>,
|
||||
return VariantRef(_pool, _data != 0 ? _data->getElement(index) : 0);
|
||||
}
|
||||
|
||||
FORCE_INLINE VariantConstRef getElementConst(size_t index) const {
|
||||
return VariantConstRef(_data != 0 ? _data->getElement(index) : 0);
|
||||
}
|
||||
|
||||
FORCE_INLINE VariantRef getOrAddElement(size_t index) const {
|
||||
return VariantRef(_pool, variantGetOrAddElement(_data, index, _pool));
|
||||
}
|
||||
@@ -313,6 +317,22 @@ class VariantRef : public VariantRefBase<VariantData>,
|
||||
_data != 0 ? _data->getMember(adaptString(key)) : 0);
|
||||
}
|
||||
|
||||
// getMemberConst(const char*) const
|
||||
// getMemberConst(const __FlashStringHelper*) const
|
||||
template <typename TChar>
|
||||
FORCE_INLINE VariantConstRef getMemberConst(TChar *key) const {
|
||||
return VariantConstRef(_data ? _data->getMember(adaptString(key)) : 0);
|
||||
}
|
||||
|
||||
// getMemberConst(const std::string&) const
|
||||
// getMemberConst(const String&) const
|
||||
template <typename TString>
|
||||
FORCE_INLINE
|
||||
typename enable_if<IsString<TString>::value, VariantConstRef>::type
|
||||
getMemberConst(const TString &key) const {
|
||||
return VariantConstRef(_data ? _data->getMember(adaptString(key)) : 0);
|
||||
}
|
||||
|
||||
// getOrAddMember(char*) const
|
||||
// getOrAddMember(const char*) const
|
||||
// getOrAddMember(const __FlashStringHelper*) const
|
||||
|
||||
Reference in New Issue
Block a user