7#if !defined(ASYNC_MQTT_UTIL_JSON_LIKE_OUT_HPP)
8#define ASYNC_MQTT_UTIL_JSON_LIKE_OUT_HPP
13#include <async_mqtt/util/buffer.hpp>
17struct json_like_out_t {
19 typename StringViewLike,
21 std::is_convertible_v<std::decay_t<StringViewLike>, std::string_view>,
25 explicit json_like_out_t(StringViewLike
const& sv): sv {sv} {}
27 friend std::ostream& operator<<(std::ostream& o, json_like_out_t
const& v) {
55 unsigned int code =
static_cast<unsigned int>(c);
56 if (code < 0x20 || code >= 0x7f) {
57 std::ios::fmtflags flags(o.flags());
58 o <<
"\\u" << std::hex << std::setw(4) << std::setfill(
'0') << (code & 0xff);
76 typename StringViewLike,
78 std::is_convertible_v<std::decay_t<StringViewLike>, std::string_view>,
82inline json_like_out_t json_like_out(StringViewLike
const& sv) {
83 return json_like_out_t{sv};