Allow reporting a type mismatch specifying the expected RapidJSON type directly
This commit is contained in:
parent
f8f551a78a
commit
59ff3c19eb
|
@ -155,6 +155,7 @@ struct JsonDeserializationErrors : public std::vector<JsonDeserializationError>
|
||||||
JsonDeserializationErrors();
|
JsonDeserializationErrors();
|
||||||
|
|
||||||
template <typename ExpectedType> void reportTypeMismatch(RAPIDJSON_NAMESPACE::Type presentType);
|
template <typename ExpectedType> void reportTypeMismatch(RAPIDJSON_NAMESPACE::Type presentType);
|
||||||
|
template <RAPIDJSON_NAMESPACE::Type expectedType> void reportTypeMismatch(RAPIDJSON_NAMESPACE::Type presentType);
|
||||||
void reportArraySizeMismatch();
|
void reportArraySizeMismatch();
|
||||||
void reportConversionError(JsonType jsonType);
|
void reportConversionError(JsonType jsonType);
|
||||||
void reportUnexpectedDuplicate(JsonType jsonType);
|
void reportUnexpectedDuplicate(JsonType jsonType);
|
||||||
|
@ -220,6 +221,16 @@ template <typename ExpectedType> inline void JsonDeserializationErrors::reportTy
|
||||||
throwMaybe(ThrowOn::TypeMismatch);
|
throwMaybe(ThrowOn::TypeMismatch);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Reports a type mismatch between \tparam expectedType and \a presentType within the current context.
|
||||||
|
*/
|
||||||
|
template <RAPIDJSON_NAMESPACE::Type expectedType> inline void JsonDeserializationErrors::reportTypeMismatch(RAPIDJSON_NAMESPACE::Type presentType)
|
||||||
|
{
|
||||||
|
emplace_back(
|
||||||
|
JsonDeserializationErrorKind::TypeMismatch, jsonType(expectedType), jsonType(presentType), currentRecord, currentMember, currentIndex);
|
||||||
|
throwMaybe(ThrowOn::TypeMismatch);
|
||||||
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Reports an array size mismatch.
|
* \brief Reports an array size mismatch.
|
||||||
* \todo Allow specifying expected and actual size.
|
* \todo Allow specifying expected and actual size.
|
||||||
|
|
Loading…
Reference in New Issue