26#include <fmt/format.h>
37template <
typename Iterator>
39 Iterator iterator,
const msgpack::object&
object);
48template <
typename Iterator>
50 Iterator iterator, msgpack::type::nil_t ) {
62template <
typename Iterator>
78template <
typename Iterator,
typename T>
80 -> std::enable_if_t<std::is_integral_v<T> || std::is_floating_point_v<T>,
82 return fmt::format_to(iterator,
"{}",
object);
93template <
typename Iterator>
95 Iterator iterator,
const msgpack::object_str&
object) {
99 std::string_view(
object.ptr,
object.size), iterator);
113template <
typename Iterator>
115 Iterator iterator,
const msgpack::object_bin&
object) {
117 for (std::uint32_t i = 0; i <
object.size; ++i) {
118 const auto byte =
static_cast<std::uint32_t
>(
119 static_cast<unsigned char>(
object.ptr[i]));
120 iterator = fmt::format_to(iterator,
"{:02X}",
byte);
135template <
typename Iterator>
137 Iterator iterator,
const msgpack::object_array&
object) {
140 for (std::uint32_t i = 0; i <
object.size; ++i) {
160template <
typename Iterator>
162 Iterator iterator,
const msgpack::object_map&
object) {
165 for (std::uint32_t i = 0; i <
object.size; ++i) {
188template <
typename Iterator>
190 Iterator iterator,
const msgpack::object_ext&
object) {
192 const auto type_number =
static_cast<int>(
object.type());
193 iterator = fmt::format_to(iterator,
"ext({}, ", type_number);
194 for (std::uint32_t i = 0; i <
object.size; ++i) {
195 const auto byte =
static_cast<std::uint32_t
>(
196 static_cast<unsigned char>(
object.data()[i]));
197 iterator = fmt::format_to(iterator,
"{:02X}",
byte);
212template <
typename Iterator>
214 Iterator iterator,
const msgpack::object&
object) {
215 switch (
object.type) {
216 case msgpack::type::NIL:
218 case msgpack::type::BOOLEAN:
220 case msgpack::type::POSITIVE_INTEGER:
222 case msgpack::type::NEGATIVE_INTEGER:
224 case msgpack::type::FLOAT32:
225 case msgpack::type::FLOAT64:
227 case msgpack::type::STR:
229 case msgpack::type::BIN:
231 case msgpack::type::ARRAY:
233 case msgpack::type::MAP:
235 case msgpack::type::EXT:
239 StatusCode::INVALID_ARGUMENT,
"Invalid message type.");
253template <
typename Iterator>
255 Iterator iterator,
const msgpack::object&
object) {
Class of exceptions in cpp-msgpack-rpc library.
Definition of copy_string_to_iterator function.
Definition of MsgpackRPCException class.
Namespace of internal implementations.
Iterator format_msgpack_object_impl(Iterator iterator, const msgpack::object &object)
Format an object in msgpack library.
Iterator copy_string_to_iterator(std::string_view string, Iterator iterator)
Copy a string to a range of an iterator.
Iterator format_msgpack_object_to(Iterator iterator, const msgpack::object &object)
Format an object in msgpack library.
Definition of StatusCode enumeration.