forked from bblanchon/ArduinoJson
Add collectionToVariant()
This commit is contained in:
@ -23,7 +23,7 @@ template <typename TData>
|
||||
class ArrayRefBase {
|
||||
public:
|
||||
operator VariantConstRef() const {
|
||||
return VariantConstRef(getVariantData());
|
||||
return VariantConstRef(collectionToVariant(_data));
|
||||
}
|
||||
|
||||
FORCE_INLINE bool isNull() const {
|
||||
@ -39,7 +39,7 @@ class ArrayRefBase {
|
||||
}
|
||||
|
||||
FORCE_INLINE size_t nesting() const {
|
||||
return variantNesting(getVariantData());
|
||||
return variantNesting(collectionToVariant(_data));
|
||||
}
|
||||
|
||||
FORCE_INLINE size_t size() const {
|
||||
@ -47,11 +47,6 @@ class ArrayRefBase {
|
||||
}
|
||||
|
||||
protected:
|
||||
const VariantData* getVariantData() const {
|
||||
const void* data = _data; // prevent warning cast-align
|
||||
return reinterpret_cast<const VariantData*>(data);
|
||||
}
|
||||
|
||||
ArrayRefBase(TData* data) : _data(data) {}
|
||||
TData* _data;
|
||||
};
|
||||
|
@ -81,4 +81,15 @@ class CollectionData {
|
||||
|
||||
VariantSlot *getPreviousSlot(VariantSlot *) const;
|
||||
};
|
||||
|
||||
inline const VariantData *collectionToVariant(
|
||||
const CollectionData *collection) {
|
||||
const void *data = collection; // prevent warning cast-align
|
||||
return reinterpret_cast<const VariantData *>(data);
|
||||
}
|
||||
|
||||
inline VariantData *collectionToVariant(CollectionData *collection) {
|
||||
void *data = collection; // prevent warning cast-align
|
||||
return reinterpret_cast<VariantData *>(data);
|
||||
}
|
||||
} // namespace ARDUINOJSON_NAMESPACE
|
||||
|
@ -18,7 +18,7 @@ template <typename TData>
|
||||
class ObjectRefBase {
|
||||
public:
|
||||
operator VariantConstRef() const {
|
||||
return VariantConstRef(getVariantData());
|
||||
return VariantConstRef(collectionToVariant(_data));
|
||||
}
|
||||
|
||||
FORCE_INLINE bool isNull() const {
|
||||
@ -34,7 +34,7 @@ class ObjectRefBase {
|
||||
}
|
||||
|
||||
FORCE_INLINE size_t nesting() const {
|
||||
return variantNesting(getVariantData());
|
||||
return variantNesting(collectionToVariant(_data));
|
||||
}
|
||||
|
||||
FORCE_INLINE size_t size() const {
|
||||
@ -42,11 +42,6 @@ class ObjectRefBase {
|
||||
}
|
||||
|
||||
protected:
|
||||
const VariantData* getVariantData() const {
|
||||
const void* data = _data; // prevent warning cast-align
|
||||
return reinterpret_cast<const VariantData*>(data);
|
||||
}
|
||||
|
||||
ObjectRefBase(TData* data) : _data(data) {}
|
||||
TData* _data;
|
||||
};
|
||||
|
Reference in New Issue
Block a user