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 Write(NYdb::TValueBuilderBase<NYdb::TValueBuilder>& builder,
const typename PrimitiveTrait::Type& value);
44 Write(NYdb::TValueBuilderBase<NYdb::TParamValueBuilder>& builder,
const typename PrimitiveTrait::Type& value);
46 static NYdb::TType MakeType();
51 static Type Parse(
const NYdb::TValueParser& value_parser);
52 template <
typename Builder>
53 static void Write(NYdb::TValueBuilderBase<Builder>& builder, Type value);
57 using Type = std::int32_t;
58 static Type Parse(
const NYdb::TValueParser& value_parser);
59 template <
typename Builder>
60 static void Write(NYdb::TValueBuilderBase<Builder>& builder, Type value);
64 using Type = std::uint32_t;
65 static Type Parse(
const NYdb::TValueParser& value_parser);
66 template <
typename Builder>
67 static void Write(NYdb::TValueBuilderBase<Builder>& builder, Type value);
71 using Type = std::int64_t;
72 static Type Parse(
const NYdb::TValueParser& value_parser);
73 template <
typename Builder>
74 static void Write(NYdb::TValueBuilderBase<Builder>& builder, Type value);
78 using Type = std::uint64_t;
79 static Type Parse(
const NYdb::TValueParser& value_parser);
80 template <
typename Builder>
81 static void Write(NYdb::TValueBuilderBase<Builder>& builder, Type value);
86 static Type Parse(
const NYdb::TValueParser& value_parser);
87 template <
typename Builder>
88 static void Write(NYdb::TValueBuilderBase<Builder>& builder, Type value);
92 using Type = std::string;
93 static Type Parse(
const NYdb::TValueParser& value_parser);
94 template <
typename Builder>
95 static void Write(NYdb::TValueBuilderBase<Builder>& builder,
const Type& value);
100 static Type Parse(
const NYdb::TValueParser& value_parser);
101 template <
typename Builder>
102 static void Write(NYdb::TValueBuilderBase<Builder>& builder,
const Type& value);
106 using Type = Timestamp;
107 static Type Parse(
const NYdb::TValueParser& value_parser);
108 template <
typename Builder>
109 static void Write(NYdb::TValueBuilderBase<Builder>& builder, Type value);
113 using Type = boost::uuids::uuid;
114 static Type Parse(
const NYdb::TValueParser& value_parser);
115 template <
typename Builder>
116 static void Write(NYdb::TValueBuilderBase<Builder>& builder, Type value);
120 using Type = formats::json::Value;
121 static Type Parse(
const NYdb::TValueParser& value_parser);
122 template <
typename Builder>
123 static void Write(NYdb::TValueBuilderBase<Builder>& builder,
const Type& value);
127 using Type = JsonDocument;
128 static Type Parse(
const NYdb::TValueParser& value_parser);
129 template <
typename Builder>
130 static void Write(NYdb::TValueBuilderBase<Builder>& builder,
const Type& value);