3#include <userver/chaotic/convert/to.hpp>
4#include <userver/utils/default_dict.hpp>
5#include <userver/utils/meta.hpp>
11template <
typename T,
typename U>
12DefaultDict<T> Convert(
const U& value, chaotic::convert::To<DefaultDict<T>>) {
13 auto& extra = value.extra;
14 auto dict = DefaultDict<T>{{extra.begin(), extra.end()}};
16 if constexpr (meta::kIsOptional<
decltype(value.__default__)>) {
17 if (value.__default__) dict.SetDefault(*value.__default__);
19 dict.SetDefault(value.__default__);
25template <
typename T,
typename U>
26U Convert(
const DefaultDict<T>& value, chaotic::convert::
To<U>) {
28 u.extra = {value.begin(), value.end()};
29 if (value.HasDefaultValue()) u.__default__ = value.GetDefaultValue();