Commit 631c1b52 authored by Paul's avatar Paul
Browse files

Format

parent 9add94f3
...@@ -98,8 +98,11 @@ constexpr auto sequence_c_impl(F&& f, seq<Ns...>) ...@@ -98,8 +98,11 @@ constexpr auto sequence_c_impl(F&& f, seq<Ns...>)
return f(std::integral_constant<std::size_t, Ns>{}...); return f(std::integral_constant<std::size_t, Ns>{}...);
} }
template<class... Ts> template <class... Ts>
struct overloaded : Ts... { using Ts::operator()...; }; struct overloaded : Ts...
{
using Ts::operator()...;
};
} // namespace detail } // namespace detail
...@@ -138,7 +141,7 @@ auto unpack(F f, T&& x) ...@@ -138,7 +141,7 @@ auto unpack(F f, T&& x)
return sequence(tuple_size(x), [&](auto... is) { f(std::get<is>(static_cast<T&&>(x))...); }); return sequence(tuple_size(x), [&](auto... is) { f(std::get<is>(static_cast<T&&>(x))...); });
} }
template<class... Ts> template <class... Ts>
detail::overloaded<Ts...> overload(Ts... xs) detail::overloaded<Ts...> overload(Ts... xs)
{ {
return {xs...}; return {xs...};
......
...@@ -41,7 +41,7 @@ struct msgpack_chunk ...@@ -41,7 +41,7 @@ struct msgpack_chunk
if(v.is_array() or v.is_object()) if(v.is_array() or v.is_object())
{ {
std::vector<value> values = v.is_array() ? v.get_array() : v.get_object(); std::vector<value> values = v.is_array() ? v.get_array() : v.get_object();
std::for_each(chunks.begin()+1, chunks.end(), [&](const auto& chunk) { std::for_each(chunks.begin() + 1, chunks.end(), [&](const auto& chunk) {
values.insert(values.end(), chunk.begin(), chunk.end()); values.insert(values.end(), chunk.begin(), chunk.end());
}); });
return values; return values;
...@@ -49,7 +49,7 @@ struct msgpack_chunk ...@@ -49,7 +49,7 @@ struct msgpack_chunk
else if(v.is_binary()) else if(v.is_binary())
{ {
value::binary data = v.get_binary(); value::binary data = v.get_binary();
std::for_each(chunks.begin()+1, chunks.end(), [&](const auto& chunk) { std::for_each(chunks.begin() + 1, chunks.end(), [&](const auto& chunk) {
const value::binary& b = chunk.get_binary(); const value::binary& b = chunk.get_binary();
data.insert(data.end(), b.begin(), b.end()); data.insert(data.end(), b.begin(), b.end());
}); });
...@@ -105,8 +105,12 @@ MSGPACK_API_VERSION_NAMESPACE(MSGPACK_DEFAULT_API_NS) ...@@ -105,8 +105,12 @@ MSGPACK_API_VERSION_NAMESPACE(MSGPACK_DEFAULT_API_NS)
v = migraphx::value::array{}; v = migraphx::value::array{};
break; break;
} }
std::variant<migraphx::value::array, migraphx::value::binary, migraphx::value::object> r; std::variant<migraphx::value::array,
switch (o.via.array.ptr->type) { migraphx::value::binary,
migraphx::value::object>
r;
switch(o.via.array.ptr->type)
{
case msgpack::type::BIN: { case msgpack::type::BIN: {
r = migraphx::value::binary{}; r = migraphx::value::binary{};
break; break;
...@@ -119,28 +123,35 @@ MSGPACK_API_VERSION_NAMESPACE(MSGPACK_DEFAULT_API_NS) ...@@ -119,28 +123,35 @@ MSGPACK_API_VERSION_NAMESPACE(MSGPACK_DEFAULT_API_NS)
r = migraphx::value::object{}; r = migraphx::value::object{};
break; break;
} }
default: default: MIGRAPHX_THROW("Incorrect chunking");
MIGRAPHX_THROW("Incorrect chunking");
} }
} }
std::for_each( std::for_each(
o.via.array.ptr, o.via.array.ptr,
o.via.array.ptr + o.via.array.size, o.via.array.ptr + o.via.array.size,
[&](const msgpack::object& sa) { [&](const msgpack::object& sa) {
std::visit(overload([&](migraphx::value::binary& bin) { std::visit(
bin.insert(bin.end(), o.via.bin.ptr, o.via.bin.ptr+o.via.bin.size); overload(
}, [&](migraphx::value::array& arr) { [&](migraphx::value::binary& bin) {
std::for_each( bin.insert(
sa.via.array.ptr, bin.end(), o.via.bin.ptr, o.via.bin.ptr + o.via.bin.size);
},
[&](migraphx::value::array& arr) {
std::for_each(sa.via.array.ptr,
sa.via.array.ptr + sa.via.array.size, sa.via.array.ptr + sa.via.array.size,
[&](const msgpack::object& so) { arr.push_back(so.as<migraphx::value>()); }); [&](const msgpack::object& so) {
}, [&](migraphx::value::object& obj) { arr.push_back(so.as<migraphx::value>());
});
},
[&](migraphx::value::object& obj) {
std::for_each(sa.via.map.ptr, std::for_each(sa.via.map.ptr,
sa.via.map.ptr + sa.via.map.size, sa.via.map.ptr + sa.via.map.size,
[&](const msgpack::object_kv& p) { [&](const msgpack::object_kv& p) {
obj[p.key.as<std::string>()] = p.val.as<migraphx::value>(); obj[p.key.as<std::string>()] =
p.val.as<migraphx::value>();
}); });
}), r); }),
r);
}); });
std::visit([&](const auto& x) { v = x; }, r); std::visit([&](const auto& x) { v = x; }, r);
break; break;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment