mirror of
				https://github.com/bblanchon/ArduinoJson.git
				synced 2025-11-04 00:21:36 +01:00 
			
		
		
		
	Replace VariantPtr, VariantConstPtr, JsonPairPtr, and JsonPairConstPtr with Ptr<T>
				
					
				
			This commit is contained in:
		@@ -9,21 +9,21 @@
 | 
			
		||||
 | 
			
		||||
ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE
 | 
			
		||||
 | 
			
		||||
class VariantPtr {
 | 
			
		||||
template <typename T>
 | 
			
		||||
class Ptr {
 | 
			
		||||
 public:
 | 
			
		||||
  VariantPtr(detail::ResourceManager* resources, detail::VariantData* data)
 | 
			
		||||
      : variant_(resources, data) {}
 | 
			
		||||
  Ptr(T value) : value_(value) {}
 | 
			
		||||
 | 
			
		||||
  JsonVariant* operator->() {
 | 
			
		||||
    return &variant_;
 | 
			
		||||
  T* operator->() {
 | 
			
		||||
    return &value_;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  JsonVariant& operator*() {
 | 
			
		||||
    return variant_;
 | 
			
		||||
  T& operator*() {
 | 
			
		||||
    return value_;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 private:
 | 
			
		||||
  JsonVariant variant_;
 | 
			
		||||
  T value_;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class JsonArrayIterator {
 | 
			
		||||
@@ -38,8 +38,8 @@ class JsonArrayIterator {
 | 
			
		||||
  JsonVariant operator*() const {
 | 
			
		||||
    return JsonVariant(resources_, slot_->data());
 | 
			
		||||
  }
 | 
			
		||||
  VariantPtr operator->() {
 | 
			
		||||
    return VariantPtr(resources_, slot_->data());
 | 
			
		||||
  Ptr<JsonVariant> operator->() {
 | 
			
		||||
    return operator*();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  bool operator==(const JsonArrayIterator& other) const {
 | 
			
		||||
@@ -65,22 +65,6 @@ class JsonArrayIterator {
 | 
			
		||||
  detail::VariantSlot* slot_;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class VariantConstPtr {
 | 
			
		||||
 public:
 | 
			
		||||
  VariantConstPtr(const detail::VariantData* data) : variant_(data) {}
 | 
			
		||||
 | 
			
		||||
  JsonVariantConst* operator->() {
 | 
			
		||||
    return &variant_;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  JsonVariantConst& operator*() {
 | 
			
		||||
    return variant_;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 private:
 | 
			
		||||
  JsonVariantConst variant_;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class JsonArrayConstIterator {
 | 
			
		||||
  friend class JsonArray;
 | 
			
		||||
 | 
			
		||||
@@ -92,8 +76,8 @@ class JsonArrayConstIterator {
 | 
			
		||||
  JsonVariantConst operator*() const {
 | 
			
		||||
    return JsonVariantConst(slot_->data());
 | 
			
		||||
  }
 | 
			
		||||
  VariantConstPtr operator->() {
 | 
			
		||||
    return VariantConstPtr(slot_->data());
 | 
			
		||||
  Ptr<JsonVariantConst> operator->() {
 | 
			
		||||
    return operator*();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  bool operator==(const JsonArrayConstIterator& other) const {
 | 
			
		||||
 
 | 
			
		||||
@@ -9,23 +9,6 @@
 | 
			
		||||
 | 
			
		||||
ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE
 | 
			
		||||
 | 
			
		||||
class JsonPairPtr {
 | 
			
		||||
 public:
 | 
			
		||||
  JsonPairPtr(detail::ResourceManager* resources, detail::VariantSlot* slot)
 | 
			
		||||
      : pair_(resources, slot) {}
 | 
			
		||||
 | 
			
		||||
  const JsonPair* operator->() const {
 | 
			
		||||
    return &pair_;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  const JsonPair& operator*() const {
 | 
			
		||||
    return pair_;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 private:
 | 
			
		||||
  JsonPair pair_;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class JsonObjectIterator {
 | 
			
		||||
  friend class JsonObject;
 | 
			
		||||
 | 
			
		||||
@@ -39,8 +22,8 @@ class JsonObjectIterator {
 | 
			
		||||
  JsonPair operator*() const {
 | 
			
		||||
    return JsonPair(resources_, slot_);
 | 
			
		||||
  }
 | 
			
		||||
  JsonPairPtr operator->() {
 | 
			
		||||
    return JsonPairPtr(resources_, slot_);
 | 
			
		||||
  Ptr<JsonPair> operator->() {
 | 
			
		||||
    return operator*();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  bool operator==(const JsonObjectIterator& other) const {
 | 
			
		||||
@@ -66,22 +49,6 @@ class JsonObjectIterator {
 | 
			
		||||
  detail::VariantSlot* slot_;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class JsonPairConstPtr {
 | 
			
		||||
 public:
 | 
			
		||||
  JsonPairConstPtr(const detail::VariantSlot* slot) : pair_(slot) {}
 | 
			
		||||
 | 
			
		||||
  const JsonPairConst* operator->() const {
 | 
			
		||||
    return &pair_;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  const JsonPairConst& operator*() const {
 | 
			
		||||
    return pair_;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 private:
 | 
			
		||||
  JsonPairConst pair_;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class JsonObjectConstIterator {
 | 
			
		||||
  friend class JsonObject;
 | 
			
		||||
 | 
			
		||||
@@ -94,8 +61,8 @@ class JsonObjectConstIterator {
 | 
			
		||||
  JsonPairConst operator*() const {
 | 
			
		||||
    return JsonPairConst(slot_);
 | 
			
		||||
  }
 | 
			
		||||
  JsonPairConstPtr operator->() {
 | 
			
		||||
    return JsonPairConstPtr(slot_);
 | 
			
		||||
  Ptr<JsonPairConst> operator->() {
 | 
			
		||||
    return operator*();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  bool operator==(const JsonObjectConstIterator& other) const {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user