5 #ifndef PACKIO_JSON_RPC_CONVERTERS_H
6 #define PACKIO_JSON_RPC_CONVERTERS_H
8 #include <boost/json.hpp>
14 template <
typename... Args, std::size_t... Idxs>
15 std::tuple<Args...> json_to_tuple(
16 const boost::json::array& jv,
17 std::index_sequence<Idxs...>)
19 return {boost::json::value_to<Args>(jv.at(Idxs))...};
29 template <
typename... Args>
30 std::tuple<Args...> tag_invoke(value_to_tag<std::tuple<Args...>>,
const value& jv)
32 return ::packio::json_rpc::internal::json_to_tuple<Args...>(
33 jv.get_array(), std::make_index_sequence<
sizeof...(Args)>());
38 typename = std::enable_if_t<std::is_same_v<std::decay_t<CStr>,
const char*>>>
39 void tag_invoke(value_from_tag, value& jv, CStr&& from)
41 jv.emplace_string().assign(std::forward<CStr>(from));
The packio namespace.
Definition: arg.h:14