CollectionIterator: replace value() with operator* and operator->

This commit is contained in:
Benoit Blanchon
2025-07-11 18:24:51 +02:00
parent c6fa8c1c1f
commit 25942cce2d
6 changed files with 15 additions and 11 deletions

View File

@ -35,7 +35,7 @@ class JsonArrayIterator {
: iterator_(iterator) {} : iterator_(iterator) {}
JsonVariant operator*() { JsonVariant operator*() {
return JsonVariant(iterator_.value()); return JsonVariant(*iterator_);
} }
Ptr<JsonVariant> operator->() { Ptr<JsonVariant> operator->() {
return operator*(); return operator*();
@ -67,7 +67,7 @@ class JsonArrayConstIterator {
: iterator_(iterator) {} : iterator_(iterator) {}
JsonVariantConst operator*() const { JsonVariantConst operator*() const {
return JsonVariantConst(iterator_.value()); return JsonVariantConst(*iterator_);
} }
Ptr<JsonVariantConst> operator->() { Ptr<JsonVariantConst> operator->() {
return operator*(); return operator*();

View File

@ -99,7 +99,7 @@ inline size_t VariantImpl::nesting() const {
return 0; return 0;
size_t maxChildNesting = 0; size_t maxChildNesting = 0;
for (auto it = createIterator(); !it.done(); it.next()) { for (auto it = createIterator(); !it.done(); it.next()) {
auto childNesting = it.value().nesting(); auto childNesting = it->nesting();
if (childNesting > maxChildNesting) if (childNesting > maxChildNesting)
maxChildNesting = childNesting; maxChildNesting = childNesting;
} }

View File

@ -30,10 +30,14 @@ class CollectionIterator {
currentId_ = nextId; currentId_ = nextId;
} }
const VariantImpl& value() const { const VariantImpl& operator*() const {
return value_; return value_;
} }
const VariantImpl* operator->() const {
return &value_;
}
bool done() const { bool done() const {
return value_.isUnbound(); return value_.isUnbound();
} }

View File

@ -26,7 +26,7 @@ class PrettyJsonSerializer : public JsonSerializer<TWriter> {
nesting_++; nesting_++;
while (!it.done()) { while (!it.done()) {
indent(); indent();
it.value().accept(*this); it->accept(*this);
it.next(); it.next();
base::write(it.done() ? "\r\n" : ",\r\n"); base::write(it.done() ? "\r\n" : ",\r\n");
} }
@ -48,7 +48,7 @@ class PrettyJsonSerializer : public JsonSerializer<TWriter> {
while (!it.done()) { while (!it.done()) {
if (isKey) if (isKey)
indent(); indent();
it.value().accept(*this); it->accept(*this);
it.next(); it.next();
if (isKey) if (isKey)
base::write(": "); base::write(": ");

View File

@ -17,9 +17,9 @@ class JsonPair {
// INTERNAL USE ONLY // INTERNAL USE ONLY
JsonPair(detail::VariantImpl::iterator iterator) { JsonPair(detail::VariantImpl::iterator iterator) {
if (!iterator.done()) { if (!iterator.done()) {
key_ = iterator.value().asString(); key_ = iterator->asString();
iterator.next(); iterator.next();
value_ = JsonVariant(iterator.value()); value_ = JsonVariant(*iterator);
} }
} }
@ -44,9 +44,9 @@ class JsonPairConst {
public: public:
JsonPairConst(detail::VariantImpl::iterator iterator) { JsonPairConst(detail::VariantImpl::iterator iterator) {
if (!iterator.done()) { if (!iterator.done()) {
key_ = iterator.value().asString(); key_ = iterator->asString();
iterator.next(); iterator.next();
value_ = JsonVariantConst(iterator.value()); value_ = JsonVariantConst(*iterator);
} }
} }

View File

@ -34,7 +34,7 @@ inline VariantImpl::iterator VariantImpl::findKey(TAdaptedString key) const {
return iterator(); return iterator();
bool isKey = true; bool isKey = true;
for (auto it = createIterator(); !it.done(); it.next()) { for (auto it = createIterator(); !it.done(); it.next()) {
if (isKey && stringEquals(key, adaptString(it.value().asString()))) if (isKey && stringEquals(key, adaptString(it->asString())))
return it; return it;
isKey = !isKey; isKey = !isKey;
} }