Эх сурвалжийг харах

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

Benoit Blanchon 6 сар өмнө
parent
commit
25942cce2d

+ 2 - 2
src/ArduinoJson/Array/JsonArrayIterator.hpp

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

+ 1 - 1
src/ArduinoJson/Collection/CollectionImpl.hpp

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

+ 5 - 1
src/ArduinoJson/Collection/CollectionIterator.hpp

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

+ 2 - 2
src/ArduinoJson/Json/PrettyJsonSerializer.hpp

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

+ 4 - 4
src/ArduinoJson/Object/JsonPair.hpp

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

+ 1 - 1
src/ArduinoJson/Object/ObjectImpl.hpp

@@ -34,7 +34,7 @@ inline VariantImpl::iterator VariantImpl::findKey(TAdaptedString key) const {
     return iterator();
   bool isKey = true;
   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;
     isKey = !isKey;
   }