mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-10-31 08:42:39 +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/Document/JsonDocument.hpp> | ||||
| #include <ArduinoJson/Variant/Visitor.hpp> | ||||
|  | ||||
| namespace ARDUINOJSON_NAMESPACE { | ||||
|  | ||||
| @@ -81,38 +82,6 @@ class ArrayCopier1D : public Visitor<size_t> { | ||||
|     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: | ||||
|   T* _destination; | ||||
|   size_t _capacity; | ||||
| @@ -132,14 +101,6 @@ class ArrayCopier2D : public Visitor<void> { | ||||
|       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: | ||||
|   T (*_destination)[N1][N2]; | ||||
|   | ||||
| @@ -8,11 +8,6 @@ | ||||
|  | ||||
| namespace ARDUINOJSON_NAMESPACE { | ||||
|  | ||||
| template <typename TResult> | ||||
| struct Visitor { | ||||
|   typedef TResult result_type; | ||||
| }; | ||||
|  | ||||
| struct Visitable { | ||||
|   // template<Visitor> | ||||
|   // void accept(Visitor&) const; | ||||
| @@ -22,5 +17,5 @@ template <typename T> | ||||
| struct IsVisitable : is_base_of<Visitable, T> {}; | ||||
|  | ||||
| template <typename T> | ||||
| struct IsVisitable<T&> : IsVisitable<T> {}; | ||||
| struct IsVisitable<T &> : IsVisitable<T> {}; | ||||
| }  // namespace ARDUINOJSON_NAMESPACE | ||||
|   | ||||
| @@ -9,40 +9,13 @@ | ||||
| #include <ArduinoJson/Numbers/arithmeticCompare.hpp> | ||||
| #include <ArduinoJson/Polyfills/type_traits.hpp> | ||||
| #include <ArduinoJson/Strings/IsString.hpp> | ||||
| #include <ArduinoJson/Variant/Visitor.hpp> | ||||
|  | ||||
| namespace ARDUINOJSON_NAMESPACE { | ||||
|  | ||||
| class CollectionData; | ||||
|  | ||||
| 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; | ||||
|   } | ||||
| }; | ||||
| struct ComparerBase : Visitor<CompareResult> {}; | ||||
|  | ||||
| template <typename T, typename Enable = void> | ||||
| 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