Fix warnings
This commit is contained in:
parent
5110cff5eb
commit
30735ba187
|
@ -206,7 +206,7 @@ void push(const Type &reflectable, RAPIDJSON_NAMESPACE::Value &value, RAPIDJSON_
|
||||||
{
|
{
|
||||||
value.SetArray();
|
value.SetArray();
|
||||||
RAPIDJSON_NAMESPACE::Value::Array array(value.GetArray());
|
RAPIDJSON_NAMESPACE::Value::Array array(value.GetArray());
|
||||||
array.Reserve(reflectable.size(), allocator);
|
array.Reserve(rapidJsonSize(reflectable.size()), allocator);
|
||||||
for (const auto &item : reflectable) {
|
for (const auto &item : reflectable) {
|
||||||
push(item, array, allocator);
|
push(item, array, allocator);
|
||||||
}
|
}
|
||||||
|
@ -332,7 +332,7 @@ void push(const Type &reflectable, RAPIDJSON_NAMESPACE::Value &value, RAPIDJSON_
|
||||||
}
|
}
|
||||||
|
|
||||||
RAPIDJSON_NAMESPACE::Value index, data;
|
RAPIDJSON_NAMESPACE::Value index, data;
|
||||||
index.SetInt(reflectable.index());
|
index.SetUint64(reflectable.index());
|
||||||
std::visit(
|
std::visit(
|
||||||
[&data, &allocator](const auto &reflectableOfActualType) {
|
[&data, &allocator](const auto &reflectableOfActualType) {
|
||||||
if constexpr (!std::is_same_v<std::decay_t<decltype(reflectableOfActualType)>, std::monostate>) {
|
if constexpr (!std::is_same_v<std::decay_t<decltype(reflectableOfActualType)>, std::monostate>) {
|
||||||
|
@ -745,9 +745,9 @@ void pull(Type &reflectable, const rapidjson::GenericValue<RAPIDJSON_NAMESPACE::
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
const auto array = i->value.GetArray();
|
const auto array = i->value.GetArray();
|
||||||
for (const auto &value : array) {
|
for (const auto &arrayValue : array) {
|
||||||
auto insertedIterator = reflectable.insert(typename Type::value_type(i->name.GetString(), typename Type::mapped_type()));
|
auto insertedIterator = reflectable.insert(typename Type::value_type(i->name.GetString(), typename Type::mapped_type()));
|
||||||
pull(insertedIterator->second, value, errors);
|
pull(insertedIterator->second, arrayValue, errors);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -899,20 +899,14 @@ void pull(Type &reflectable, const rapidjson::GenericValue<RAPIDJSON_NAMESPACE::
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const auto &indexValue = indexIterator->value;
|
const auto &indexValue = indexIterator->value;
|
||||||
if (!indexValue.IsInt()) {
|
if (!indexValue.IsUint64()) {
|
||||||
if (errors) {
|
if (errors) {
|
||||||
errors->emplace_back(JsonDeserializationErrorKind::InvalidVariantIndex, JsonType::Number, jsonType(indexValue.GetType()),
|
errors->emplace_back(JsonDeserializationErrorKind::InvalidVariantIndex, JsonType::Number, jsonType(indexValue.GetType()),
|
||||||
errors->currentRecord, errors->currentMember, errors->currentIndex);
|
errors->currentRecord, errors->currentMember, errors->currentIndex);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const auto index = indexValue.GetInt();
|
Detail::assignVariantValueByRuntimeIndex(indexValue.GetUint64(), reflectable, dataIterator->value, errors);
|
||||||
if (index < 0) {
|
|
||||||
errors->emplace_back(JsonDeserializationErrorKind::InvalidVariantIndex, JsonType::Number, JsonType::Number, errors->currentRecord,
|
|
||||||
errors->currentMember, errors->currentIndex);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Detail::assignVariantValueByRuntimeIndex(static_cast<std::size_t>(index), reflectable, dataIterator->value, errors);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|
|
@ -160,11 +160,11 @@ void JsonReflectorBoostHanaTests::testDeserializeNestedObjects()
|
||||||
CPPUNIT_ASSERT_EQUAL(2_st, testObjects.size());
|
CPPUNIT_ASSERT_EQUAL(2_st, testObjects.size());
|
||||||
CPPUNIT_ASSERT_EQUAL(42, testObjects[0].number);
|
CPPUNIT_ASSERT_EQUAL(42, testObjects[0].number);
|
||||||
CPPUNIT_ASSERT_EQUAL(43, testObjects[1].number);
|
CPPUNIT_ASSERT_EQUAL(43, testObjects[1].number);
|
||||||
for (const TestObjectHana &testObj : testObjects) {
|
for (const TestObjectHana &nestedTestObj : testObjects) {
|
||||||
CPPUNIT_ASSERT_EQUAL(3.141592653589793, testObj.number2);
|
CPPUNIT_ASSERT_EQUAL(3.141592653589793, nestedTestObj.number2);
|
||||||
CPPUNIT_ASSERT_EQUAL(vector<int>({ 1, 2, 3, 4 }), testObj.numbers);
|
CPPUNIT_ASSERT_EQUAL(vector<int>({ 1, 2, 3, 4 }), nestedTestObj.numbers);
|
||||||
CPPUNIT_ASSERT_EQUAL("test"s, testObj.text);
|
CPPUNIT_ASSERT_EQUAL("test"s, nestedTestObj.text);
|
||||||
CPPUNIT_ASSERT_EQUAL(false, testObj.boolean);
|
CPPUNIT_ASSERT_EQUAL(false, nestedTestObj.boolean);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -500,11 +500,11 @@ void JsonReflectorTests::testDeserializeNestedObjects()
|
||||||
CPPUNIT_ASSERT_EQUAL(2_st, testObjects.size());
|
CPPUNIT_ASSERT_EQUAL(2_st, testObjects.size());
|
||||||
CPPUNIT_ASSERT_EQUAL(42, testObjects[0].number);
|
CPPUNIT_ASSERT_EQUAL(42, testObjects[0].number);
|
||||||
CPPUNIT_ASSERT_EQUAL(43, testObjects[1].number);
|
CPPUNIT_ASSERT_EQUAL(43, testObjects[1].number);
|
||||||
for (const TestObject &testObj : testObjects) {
|
for (const TestObject &nestedTestObj : testObjects) {
|
||||||
CPPUNIT_ASSERT_EQUAL(3.141592653589793, testObj.number2);
|
CPPUNIT_ASSERT_EQUAL(3.141592653589793, nestedTestObj.number2);
|
||||||
CPPUNIT_ASSERT_EQUAL(vector<int>({ 1, 2, 3, 4 }), testObj.numbers);
|
CPPUNIT_ASSERT_EQUAL(vector<int>({ 1, 2, 3, 4 }), nestedTestObj.numbers);
|
||||||
CPPUNIT_ASSERT_EQUAL("test"s, testObj.text);
|
CPPUNIT_ASSERT_EQUAL("test"s, nestedTestObj.text);
|
||||||
CPPUNIT_ASSERT_EQUAL(false, testObj.boolean);
|
CPPUNIT_ASSERT_EQUAL(false, nestedTestObj.boolean);
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto nestedInVector(JsonReflector::fromJson<vector<TestObject>>(
|
const auto nestedInVector(JsonReflector::fromJson<vector<TestObject>>(
|
||||||
|
|
Loading…
Reference in New Issue