Re run make amalgamate
This commit is contained in:
parent
51d8c28ea5
commit
8f4d8a6f93
@ -10,11 +10,11 @@ namespace detail
|
|||||||
struct json_default_base {};
|
struct json_default_base {};
|
||||||
|
|
||||||
template<class T>
|
template<class T>
|
||||||
using json_base_class = typename std::conditional<
|
using json_base_class = typename std::conditional <
|
||||||
std::is_same<T, void>::value,
|
std::is_same<T, void>::value,
|
||||||
json_default_base,
|
json_default_base,
|
||||||
T
|
T
|
||||||
>::type;
|
>::type;
|
||||||
|
|
||||||
} // namespace detail
|
} // namespace detail
|
||||||
} // namespace nlohmann
|
} // namespace nlohmann
|
||||||
|
|||||||
@ -66,7 +66,7 @@ using json_with_metadata =
|
|||||||
nlohmann::adl_serializer,
|
nlohmann::adl_serializer,
|
||||||
std::vector<std::uint8_t>,
|
std::vector<std::uint8_t>,
|
||||||
json_metadata<T>
|
json_metadata<T>
|
||||||
>;
|
>;
|
||||||
|
|
||||||
TEST_CASE("JSON Node Metadata")
|
TEST_CASE("JSON Node Metadata")
|
||||||
{
|
{
|
||||||
@ -216,18 +216,18 @@ class visitor_adaptor
|
|||||||
};
|
};
|
||||||
|
|
||||||
using json_with_visitor_t = nlohmann::basic_json <
|
using json_with_visitor_t = nlohmann::basic_json <
|
||||||
std::map,
|
std::map,
|
||||||
std::vector,
|
std::vector,
|
||||||
std::string,
|
std::string,
|
||||||
bool,
|
bool,
|
||||||
std::int64_t,
|
std::int64_t,
|
||||||
std::uint64_t,
|
std::uint64_t,
|
||||||
double,
|
double,
|
||||||
std::allocator,
|
std::allocator,
|
||||||
nlohmann::adl_serializer,
|
nlohmann::adl_serializer,
|
||||||
std::vector<std::uint8_t>,
|
std::vector<std::uint8_t>,
|
||||||
visitor_adaptor
|
visitor_adaptor
|
||||||
>;
|
>;
|
||||||
|
|
||||||
|
|
||||||
template <class Fnc>
|
template <class Fnc>
|
||||||
@ -241,30 +241,45 @@ void visitor_adaptor::do_visit(const Ptr& ptr, const Fnc& fnc) const
|
|||||||
{
|
{
|
||||||
using value_t = nlohmann::detail::value_t;
|
using value_t = nlohmann::detail::value_t;
|
||||||
const json_with_visitor_t& json = *static_cast<const json_with_visitor_t*>(this);
|
const json_with_visitor_t& json = *static_cast<const json_with_visitor_t*>(this);
|
||||||
switch(json.type())
|
switch (json.type())
|
||||||
{
|
{
|
||||||
case value_t::object:
|
case value_t::object:
|
||||||
for(const auto& entry : json.items())
|
for (const auto& entry : json.items())
|
||||||
{
|
{
|
||||||
entry.value().do_visit(ptr/entry.key(), fnc);
|
entry.value().do_visit(ptr / entry.key(), fnc);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case value_t::array:
|
case value_t::array:
|
||||||
for(std::size_t i = 0; i < json.size(); ++i)
|
for (std::size_t i = 0; i < json.size(); ++i)
|
||||||
{
|
{
|
||||||
json.at(i).do_visit(ptr/std::to_string(i), fnc);
|
json.at(i).do_visit(ptr / std::to_string(i), fnc);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case value_t::discarded: break;
|
case value_t::discarded:
|
||||||
case value_t::null: fnc(ptr, json); break;
|
break;
|
||||||
case value_t::string: fnc(ptr, json); break;
|
case value_t::null:
|
||||||
case value_t::boolean: fnc(ptr, json); break;
|
fnc(ptr, json);
|
||||||
case value_t::number_integer: fnc(ptr, json); break;
|
break;
|
||||||
case value_t::number_unsigned: fnc(ptr, json); break;
|
case value_t::string:
|
||||||
case value_t::number_float: fnc(ptr, json); break;
|
fnc(ptr, json);
|
||||||
case value_t::binary: fnc(ptr, json); break;
|
break;
|
||||||
default:
|
case value_t::boolean:
|
||||||
fnc(ptr, json);
|
fnc(ptr, json);
|
||||||
|
break;
|
||||||
|
case value_t::number_integer:
|
||||||
|
fnc(ptr, json);
|
||||||
|
break;
|
||||||
|
case value_t::number_unsigned:
|
||||||
|
fnc(ptr, json);
|
||||||
|
break;
|
||||||
|
case value_t::number_float:
|
||||||
|
fnc(ptr, json);
|
||||||
|
break;
|
||||||
|
case value_t::binary:
|
||||||
|
fnc(ptr, json);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
fnc(ptr, json);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -303,32 +318,54 @@ TEST_CASE("JSON Visit Node")
|
|||||||
};
|
};
|
||||||
|
|
||||||
json.visit(
|
json.visit(
|
||||||
[&](const json_with_visitor_t::json_pointer& p,
|
[&](const json_with_visitor_t::json_pointer & p,
|
||||||
const json_with_visitor_t& j)
|
const json_with_visitor_t& j)
|
||||||
|
{
|
||||||
|
std::stringstream str;
|
||||||
|
str << p.to_string() << " - " ;
|
||||||
|
using value_t = nlohmann::detail::value_t;
|
||||||
|
switch (j.type())
|
||||||
{
|
{
|
||||||
std::stringstream str;
|
case value_t::object:
|
||||||
str << p.to_string() << " - " ;
|
str << "object";
|
||||||
using value_t = nlohmann::detail::value_t;
|
break;
|
||||||
switch(j.type())
|
case value_t::array:
|
||||||
{
|
str << "array";
|
||||||
case value_t::object: str << "object"; break;
|
break;
|
||||||
case value_t::array: str << "array"; break;
|
case value_t::discarded:
|
||||||
case value_t::discarded: str << "discarded"; break;
|
str << "discarded";
|
||||||
case value_t::null: str << "null"; break;
|
break;
|
||||||
case value_t::string: str << "string"; break;
|
case value_t::null:
|
||||||
case value_t::boolean: str << "boolean"; break;
|
str << "null";
|
||||||
case value_t::number_integer: str << "number_integer"; break;
|
break;
|
||||||
case value_t::number_unsigned: str << "number_unsigned"; break;
|
case value_t::string:
|
||||||
case value_t::number_float: str << "number_float"; break;
|
str << "string";
|
||||||
case value_t::binary: str << "binary"; break;
|
break;
|
||||||
default: str << "error"; break;
|
case value_t::boolean:
|
||||||
}
|
str << "boolean";
|
||||||
str << " - " << j.dump();
|
break;
|
||||||
CHECK(json.at(p) == j);
|
case value_t::number_integer:
|
||||||
INFO(str.str());
|
str << "number_integer";
|
||||||
CHECK(expected.count(str.str()) == 1);
|
break;
|
||||||
expected.erase(str.str());
|
case value_t::number_unsigned:
|
||||||
|
str << "number_unsigned";
|
||||||
|
break;
|
||||||
|
case value_t::number_float:
|
||||||
|
str << "number_float";
|
||||||
|
break;
|
||||||
|
case value_t::binary:
|
||||||
|
str << "binary";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
str << "error";
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
str << " - " << j.dump();
|
||||||
|
CHECK(json.at(p) == j);
|
||||||
|
INFO(str.str());
|
||||||
|
CHECK(expected.count(str.str()) == 1);
|
||||||
|
expected.erase(str.str());
|
||||||
|
}
|
||||||
);
|
);
|
||||||
CHECK(expected.empty());
|
CHECK(expected.empty());
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user