6#include <userver/formats/json_fwd.hpp>
8#include <userver/ydb/io/traits.hpp>
9#include <userver/ydb/types.hpp>
11namespace boost::uuids {
15USERVER_NAMESPACE_BEGIN
19template <
typename PrimitiveTrait>
21 static std::optional<
typename PrimitiveTrait::Type> Parse(NYdb::TValueParser& parser,
const ParseContext& context);
24 NYdb::TValueBuilderBase<NYdb::TValueBuilder>& builder,
25 const std::optional<
typename PrimitiveTrait::Type>& value
29 NYdb::TValueBuilderBase<NYdb::TParamValueBuilder>& builder,
30 const std::optional<
typename PrimitiveTrait::Type>& value
33 static NYdb::TType MakeType();
36template <
typename PrimitiveTrait>
38 static typename PrimitiveTrait::Type Parse(NYdb::TValueParser& parser,
const ParseContext& context);
41 NYdb::TValueBuilderBase<NYdb::TValueBuilder>& builder,
42 const typename PrimitiveTrait::Type& value
46 NYdb::TValueBuilderBase<NYdb::TParamValueBuilder>& builder,
47 const typename PrimitiveTrait::Type& value
50 static NYdb::TType MakeType();
55 static Type Parse(
const NYdb::TValueParser& value_parser);
56 template <
typename Builder>
57 static void Write(NYdb::TValueBuilderBase<Builder>& builder, Type value);
61 using Type = std::int32_t;
62 static Type Parse(
const NYdb::TValueParser& value_parser);
63 template <
typename Builder>
64 static void Write(NYdb::TValueBuilderBase<Builder>& builder, Type value);
68 using Type = std::uint32_t;
69 static Type Parse(
const NYdb::TValueParser& value_parser);
70 template <
typename Builder>
71 static void Write(NYdb::TValueBuilderBase<Builder>& builder, Type value);
75 using Type = std::int64_t;
76 static Type Parse(
const NYdb::TValueParser& value_parser);
77 template <
typename Builder>
78 static void Write(NYdb::TValueBuilderBase<Builder>& builder, Type value);
82 using Type = std::uint64_t;
83 static Type Parse(
const NYdb::TValueParser& value_parser);
84 template <
typename Builder>
85 static void Write(NYdb::TValueBuilderBase<Builder>& builder, Type value);
90 static Type Parse(
const NYdb::TValueParser& value_parser);
91 template <
typename Builder>
92 static void Write(NYdb::TValueBuilderBase<Builder>& builder, Type value);
96 using Type = std::string;
97 static Type Parse(
const NYdb::TValueParser& value_parser);
98 template <
typename Builder>
99 static void Write(NYdb::TValueBuilderBase<Builder>& builder,
const Type& value);
104 static Type Parse(
const NYdb::TValueParser& value_parser);
105 template <
typename Builder>
106 static void Write(NYdb::TValueBuilderBase<Builder>& builder,
const Type& value);
110 using Type = Timestamp;
111 static Type Parse(
const NYdb::TValueParser& value_parser);
112 template <
typename Builder>
113 static void Write(NYdb::TValueBuilderBase<Builder>& builder, Type value);
117 using Type = boost::uuids::uuid;
118 static Type Parse(
const NYdb::TValueParser& value_parser);
119 template <
typename Builder>
120 static void Write(NYdb::TValueBuilderBase<Builder>& builder, Type value);
124 using Type = formats::json::Value;
125 static Type Parse(
const NYdb::TValueParser& value_parser);
126 template <
typename Builder>
127 static void Write(NYdb::TValueBuilderBase<Builder>& builder,
const Type& value);
131 using Type = JsonDocument;
132 static Type Parse(
const NYdb::TValueParser& value_parser);
133 template <
typename Builder>
134 static void Write(NYdb::TValueBuilderBase<Builder>& builder,
const Type& value);