10#include <userver/formats/common/type.hpp>
11#include <userver/formats/serialize/to.hpp>
12#include <userver/utils/meta.hpp>
14namespace boost::uuids {
18USERVER_NAMESPACE_BEGIN
20namespace utils::impl::strong_typedef {
21struct StrongTypedefTag;
28template <
typename T,
typename Value>
35 for (
const auto& item : value) {
37 builder.PushBack(
static_cast<
const meta::RangeValueType<T>&>(item));
39 return builder.ExtractValue();
43template <
typename T,
typename Value>
46 for (
const auto& [key, value] : value) {
49 return builder.ExtractValue();
53template <
typename T,
typename Value>
55 if (!value)
return {};
57 return typename Value::Builder(*value).ExtractValue();