Added nesting() to JsonArray, JsonDocument, JsonObject, and JsonVariant

This commit is contained in:
Benoit Blanchon
2019-01-17 09:55:51 +01:00
parent c51cc91f92
commit 30b94493bb
16 changed files with 172 additions and 0 deletions

View File

@@ -56,6 +56,7 @@ class CollectionData {
void remove(VariantSlot *slot);
size_t memoryUsage() const;
size_t nesting() const;
size_t size() const;
private:

View File

@@ -147,6 +147,15 @@ inline size_t CollectionData::memoryUsage() const {
return total;
}
inline size_t CollectionData::nesting() const {
size_t maxChildNesting = 0;
for (VariantSlot* s = _head; s; s = s->next()) {
size_t childNesting = s->data()->nesting();
if (childNesting > maxChildNesting) maxChildNesting = childNesting;
}
return maxChildNesting + 1;
}
inline size_t CollectionData::size() const {
return slotSize(_head);
}