46 const std::string&
key,
61 const std::string&
key,
79template <msgpack_concepts::HasMsgPack T> std::ostream&
operator<<(std::ostream&
os,
const T&
obj)
92 std::ios_base::fmtflags f(
os.flags());
94 for (
auto byte :
arr) {
105 for (
auto element :
arr) {
106 os <<
' ' << element;
112template <
typename T,
typename A>
117 for (
auto element :
arr) {
118 os <<
' ' << element <<
'\n';
126 std::ios_base::fmtflags f(
os.flags());
128 for (
auto byte :
arr) {
138 std::ios_base::fmtflags f(
os.flags());
140 for (
auto element :
arr) {
141 os <<
' ' << element;
150 os <<
"(" << pair.first <<
", " << pair.second <<
")";
156 return opt ?
os << *
opt :
os <<
"std::nullopt";
162 for (
const auto& elem : map) {
163 os <<
" " << elem.first <<
": " << elem.second <<
"\n";
void _msgpack_stream_write(std::ostream &os, const std::shared_ptr< T > &field)
Helper method for streaming msgpack values, specialized for shared_ptr.
void _msgpack_stream_write_key_value_pairs(std::ostream &os)
Recursive helper method for streaming msgpack key value pairs, base case.
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
std::ostream & operator<<(std::ostream &os, const T &obj)
Automatically derived stream operator for any object that defines .msgpack() (implicitly defined by M...