forked from bblanchon/ArduinoJson
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