mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-10-31 16:14:11 +01:00 
			
		
		
		
	Added a default implementation in the Visitor class
This commit is contained in:
		| @@ -6,6 +6,7 @@ | |||||||
|  |  | ||||||
| #include <ArduinoJson/Array/ArrayRef.hpp> | #include <ArduinoJson/Array/ArrayRef.hpp> | ||||||
| #include <ArduinoJson/Document/JsonDocument.hpp> | #include <ArduinoJson/Document/JsonDocument.hpp> | ||||||
|  | #include <ArduinoJson/Variant/Visitor.hpp> | ||||||
|  |  | ||||||
| namespace ARDUINOJSON_NAMESPACE { | namespace ARDUINOJSON_NAMESPACE { | ||||||
|  |  | ||||||
| @@ -81,38 +82,6 @@ class ArrayCopier1D : public Visitor<size_t> { | |||||||
|     return size; |     return size; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   size_t visitObject(const CollectionData&) { |  | ||||||
|     return 0; |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   size_t visitFloat(Float) { |  | ||||||
|     return 0; |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   size_t visitString(const char*) { |  | ||||||
|     return 0; |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   size_t visitRawJson(const char*, size_t) { |  | ||||||
|     return 0; |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   size_t visitNegativeInteger(UInt) { |  | ||||||
|     return 0; |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   size_t visitPositiveInteger(UInt) { |  | ||||||
|     return 0; |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   size_t visitBoolean(bool) { |  | ||||||
|     return 0; |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   size_t visitNull() { |  | ||||||
|     return 0; |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|  private: |  private: | ||||||
|   T* _destination; |   T* _destination; | ||||||
|   size_t _capacity; |   size_t _capacity; | ||||||
| @@ -132,14 +101,6 @@ class ArrayCopier2D : public Visitor<void> { | |||||||
|       slot = slot->next(); |       slot = slot->next(); | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|   void visitObject(const CollectionData&) {} |  | ||||||
|   void visitFloat(Float) {} |  | ||||||
|   void visitString(const char*) {} |  | ||||||
|   void visitRawJson(const char*, size_t) {} |  | ||||||
|   void visitNegativeInteger(UInt) {} |  | ||||||
|   void visitPositiveInteger(UInt) {} |  | ||||||
|   void visitBoolean(bool) {} |  | ||||||
|   void visitNull() {} |  | ||||||
|  |  | ||||||
|  private: |  private: | ||||||
|   T (*_destination)[N1][N2]; |   T (*_destination)[N1][N2]; | ||||||
|   | |||||||
| @@ -8,11 +8,6 @@ | |||||||
|  |  | ||||||
| namespace ARDUINOJSON_NAMESPACE { | namespace ARDUINOJSON_NAMESPACE { | ||||||
|  |  | ||||||
| template <typename TResult> |  | ||||||
| struct Visitor { |  | ||||||
|   typedef TResult result_type; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| struct Visitable { | struct Visitable { | ||||||
|   // template<Visitor> |   // template<Visitor> | ||||||
|   // void accept(Visitor&) const; |   // void accept(Visitor&) const; | ||||||
| @@ -22,5 +17,5 @@ template <typename T> | |||||||
| struct IsVisitable : is_base_of<Visitable, T> {}; | struct IsVisitable : is_base_of<Visitable, T> {}; | ||||||
|  |  | ||||||
| template <typename T> | template <typename T> | ||||||
| struct IsVisitable<T&> : IsVisitable<T> {}; | struct IsVisitable<T &> : IsVisitable<T> {}; | ||||||
| }  // namespace ARDUINOJSON_NAMESPACE | }  // namespace ARDUINOJSON_NAMESPACE | ||||||
|   | |||||||
| @@ -9,40 +9,13 @@ | |||||||
| #include <ArduinoJson/Numbers/arithmeticCompare.hpp> | #include <ArduinoJson/Numbers/arithmeticCompare.hpp> | ||||||
| #include <ArduinoJson/Polyfills/type_traits.hpp> | #include <ArduinoJson/Polyfills/type_traits.hpp> | ||||||
| #include <ArduinoJson/Strings/IsString.hpp> | #include <ArduinoJson/Strings/IsString.hpp> | ||||||
|  | #include <ArduinoJson/Variant/Visitor.hpp> | ||||||
|  |  | ||||||
| namespace ARDUINOJSON_NAMESPACE { | namespace ARDUINOJSON_NAMESPACE { | ||||||
|  |  | ||||||
| class CollectionData; | class CollectionData; | ||||||
|  |  | ||||||
| struct ComparerBase : Visitor<CompareResult> { | struct ComparerBase : Visitor<CompareResult> {}; | ||||||
|   CompareResult visitArray(const CollectionData &) { |  | ||||||
|     return COMPARE_RESULT_DIFFER; |  | ||||||
|   } |  | ||||||
|   CompareResult visitBoolean(bool) { |  | ||||||
|     return COMPARE_RESULT_DIFFER; |  | ||||||
|   } |  | ||||||
|   CompareResult visitFloat(Float) { |  | ||||||
|     return COMPARE_RESULT_DIFFER; |  | ||||||
|   } |  | ||||||
|   CompareResult visitNegativeInteger(UInt) { |  | ||||||
|     return COMPARE_RESULT_DIFFER; |  | ||||||
|   } |  | ||||||
|   CompareResult visitNull() { |  | ||||||
|     return COMPARE_RESULT_DIFFER; |  | ||||||
|   } |  | ||||||
|   CompareResult visitObject(const CollectionData &) { |  | ||||||
|     return COMPARE_RESULT_DIFFER; |  | ||||||
|   } |  | ||||||
|   CompareResult visitPositiveInteger(UInt) { |  | ||||||
|     return COMPARE_RESULT_DIFFER; |  | ||||||
|   } |  | ||||||
|   CompareResult visitRawJson(const char *, size_t) { |  | ||||||
|     return COMPARE_RESULT_DIFFER; |  | ||||||
|   } |  | ||||||
|   CompareResult visitString(const char *) { |  | ||||||
|     return COMPARE_RESULT_DIFFER; |  | ||||||
|   } |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| template <typename T, typename Enable = void> | template <typename T, typename Enable = void> | ||||||
| struct Comparer; | struct Comparer; | ||||||
|   | |||||||
							
								
								
									
										54
									
								
								src/ArduinoJson/Variant/Visitor.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								src/ArduinoJson/Variant/Visitor.hpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,54 @@ | |||||||
|  | // ArduinoJson - arduinojson.org | ||||||
|  | // Copyright Benoit Blanchon 2014-2021 | ||||||
|  | // MIT License | ||||||
|  |  | ||||||
|  | #pragma once | ||||||
|  |  | ||||||
|  | #include <ArduinoJson/Collection/CollectionData.hpp> | ||||||
|  | #include <ArduinoJson/Numbers/Float.hpp> | ||||||
|  | #include <ArduinoJson/Numbers/Integer.hpp> | ||||||
|  |  | ||||||
|  | namespace ARDUINOJSON_NAMESPACE { | ||||||
|  |  | ||||||
|  | template <typename TResult> | ||||||
|  | struct Visitor { | ||||||
|  |   typedef TResult result_type; | ||||||
|  |  | ||||||
|  |   TResult visitArray(const CollectionData &) { | ||||||
|  |     return TResult(); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   TResult visitBoolean(bool) { | ||||||
|  |     return TResult(); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   TResult visitFloat(Float) { | ||||||
|  |     return TResult(); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   TResult visitNegativeInteger(UInt) { | ||||||
|  |     return TResult(); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   TResult visitNull() { | ||||||
|  |     return TResult(); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   TResult visitObject(const CollectionData &) { | ||||||
|  |     return TResult(); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   TResult visitPositiveInteger(UInt) { | ||||||
|  |     return TResult(); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   TResult visitRawJson(const char *, size_t) { | ||||||
|  |     return TResult(); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   TResult visitString(const char *) { | ||||||
|  |     return TResult(); | ||||||
|  |   } | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | }  // namespace ARDUINOJSON_NAMESPACE | ||||||
		Reference in New Issue
	
	Block a user