remove TODO

This commit is contained in:
proddy
2023-03-05 14:32:27 +01:00
parent 50d489d3c1
commit ef602ca70b

View File

@@ -20,13 +20,14 @@ template <typename T, typename Enable = void>
struct Comparer;
template <typename T>
struct Comparer<T, typename enable_if<IsString<T>::value>::type>
: ComparerBase {
T rhs; // TODO: store adapted string?
struct Comparer<T, typename enable_if<IsString<T>::value>::type> : ComparerBase {
T rhs;
explicit Comparer(T value) : rhs(value) {}
explicit Comparer(T value)
: rhs(value) {
}
CompareResult visitString(const char* lhs, size_t n) {
CompareResult visitString(const char * lhs, size_t n) {
int i = stringCompare(adaptString(rhs), adaptString(lhs, n));
if (i < 0)
return COMPARE_RESULT_GREATER;
@@ -45,12 +46,12 @@ struct Comparer<T, typename enable_if<IsString<T>::value>::type>
};
template <typename T>
struct Comparer<T, typename enable_if<is_integral<T>::value ||
is_floating_point<T>::value>::type>
: ComparerBase {
struct Comparer<T, typename enable_if<is_integral<T>::value || is_floating_point<T>::value>::type> : ComparerBase {
T rhs;
explicit Comparer(T value) : rhs(value) {}
explicit Comparer(T value)
: rhs(value) {
}
CompareResult visitFloat(JsonFloat lhs) {
return arithmeticCompare(lhs, rhs);
@@ -78,16 +79,20 @@ struct NullComparer : ComparerBase {
#if ARDUINOJSON_HAS_NULLPTR
template <>
struct Comparer<decltype(nullptr), void> : NullComparer {
explicit Comparer(decltype(nullptr)) : NullComparer() {}
explicit Comparer(decltype(nullptr))
: NullComparer() {
}
};
#endif
struct ArrayComparer : ComparerBase {
const CollectionData* _rhs;
const CollectionData * _rhs;
explicit ArrayComparer(const CollectionData& rhs) : _rhs(&rhs) {}
explicit ArrayComparer(const CollectionData & rhs)
: _rhs(&rhs) {
}
CompareResult visitArray(const CollectionData& lhs) {
CompareResult visitArray(const CollectionData & lhs) {
if (JsonArrayConst(&lhs) == JsonArrayConst(_rhs))
return COMPARE_RESULT_EQUAL;
else
@@ -96,11 +101,13 @@ struct ArrayComparer : ComparerBase {
};
struct ObjectComparer : ComparerBase {
const CollectionData* _rhs;
const CollectionData * _rhs;
explicit ObjectComparer(const CollectionData& rhs) : _rhs(&rhs) {}
explicit ObjectComparer(const CollectionData & rhs)
: _rhs(&rhs) {
}
CompareResult visitObject(const CollectionData& lhs) {
CompareResult visitObject(const CollectionData & lhs) {
if (JsonObjectConst(&lhs) == JsonObjectConst(_rhs))
return COMPARE_RESULT_EQUAL;
else
@@ -109,13 +116,15 @@ struct ObjectComparer : ComparerBase {
};
struct RawComparer : ComparerBase {
const char* _rhsData;
const char * _rhsData;
size_t _rhsSize;
explicit RawComparer(const char* rhsData, size_t rhsSize)
: _rhsData(rhsData), _rhsSize(rhsSize) {}
explicit RawComparer(const char * rhsData, size_t rhsSize)
: _rhsData(rhsData)
, _rhsSize(rhsSize) {
}
CompareResult visitRawJson(const char* lhsData, size_t lhsSize) {
CompareResult visitRawJson(const char * lhsData, size_t lhsSize) {
size_t size = _rhsSize < lhsSize ? _rhsSize : lhsSize;
int n = memcmp(lhsData, _rhsData, size);
if (n < 0)
@@ -128,16 +137,18 @@ struct RawComparer : ComparerBase {
};
struct VariantComparer : ComparerBase {
const VariantData* rhs;
const VariantData * rhs;
explicit VariantComparer(const VariantData* value) : rhs(value) {}
explicit VariantComparer(const VariantData * value)
: rhs(value) {
}
CompareResult visitArray(const CollectionData& lhs) {
CompareResult visitArray(const CollectionData & lhs) {
ArrayComparer comparer(lhs);
return accept(comparer);
}
CompareResult visitObject(const CollectionData& lhs) {
CompareResult visitObject(const CollectionData & lhs) {
ObjectComparer comparer(lhs);
return accept(comparer);
}
@@ -147,12 +158,12 @@ struct VariantComparer : ComparerBase {
return accept(comparer);
}
CompareResult visitString(const char* lhs, size_t) {
Comparer<const char*> comparer(lhs);
CompareResult visitString(const char * lhs, size_t) {
Comparer<const char *> comparer(lhs);
return accept(comparer);
}
CompareResult visitRawJson(const char* lhsData, size_t lhsSize) {
CompareResult visitRawJson(const char * lhsData, size_t lhsSize) {
RawComparer comparer(lhsData, lhsSize);
return accept(comparer);
}
@@ -179,7 +190,7 @@ struct VariantComparer : ComparerBase {
private:
template <typename TComparer>
CompareResult accept(TComparer& comparer) {
CompareResult accept(TComparer & comparer) {
CompareResult reversedResult = variantAccept(rhs, comparer);
switch (reversedResult) {
case COMPARE_RESULT_GREATER:
@@ -193,15 +204,14 @@ struct VariantComparer : ComparerBase {
};
template <typename T>
struct Comparer<
T, typename enable_if<is_convertible<T, JsonVariantConst>::value>::type>
: VariantComparer {
explicit Comparer(const T& value)
: VariantComparer(VariantAttorney::getData(value)) {}
struct Comparer<T, typename enable_if<is_convertible<T, JsonVariantConst>::value>::type> : VariantComparer {
explicit Comparer(const T & value)
: VariantComparer(VariantAttorney::getData(value)) {
}
};
template <typename T>
CompareResult compare(JsonVariantConst lhs, const T& rhs) {
CompareResult compare(JsonVariantConst lhs, const T & rhs) {
Comparer<T> comparer(rhs);
return variantAccept(VariantAttorney::getData(lhs), comparer);
}