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