YDB struct serialization traits and customization.
Definition in file structs.hpp.
Go to the source code of this file.
#include <ydb-cpp-sdk/client/result/result.h>#include <ydb-cpp-sdk/client/value/value.h>#include <cstddef>#include <memory>#include <optional>#include <string_view>#include <tuple>#include <type_traits>#include <fmt/ranges.h>#include <boost/pfr/core.hpp>#include <boost/pfr/core_name.hpp>#include <userver/utils/assert.hpp>#include <userver/utils/constexpr_indices.hpp>#include <userver/utils/enumerate.hpp>#include <userver/utils/forward_like.hpp>#include <userver/utils/trivial_map.hpp>#include <userver/ydb/exceptions.hpp>#include <userver/ydb/impl/cast.hpp>#include <userver/ydb/io/generic_optional.hpp>#include <userver/ydb/io/traits.hpp>
This graph shows which files directly or indirectly include this file:Classes | |
| struct | ydb::CustomMemberName |
| struct | ydb::StructMemberNames< N > |
| Specifies C++ to YDB struct member names mapping. It's enough to only specify the names that are different between C++ and YDB. More... | |
Functions | |
| ydb::StructMemberNames () -> StructMemberNames< 0 > | |
| template<std::size_t N> | |
| ydb::StructMemberNames (CustomMemberName(&&)[N]) -> StructMemberNames< N > | |
Variables | |
| template<typename T> | |
| constexpr auto | ydb::kStructMemberNames = impl::DetectStructMemberNames<T>() |
| Customization point for YDB serialization of structs. | |
|
inlineconstexpr |
Customization point for YDB serialization of structs.
In order to get serialization for a struct, you need to define kYdbMemberNames inside it:
Field names can be overridden:
To enable YDB serialization for an external struct, specialize ydb::kStructMemberNames for it:
For extra fields on C++ side, parsing throws ydb::ParseError. For extra fields on YDB side, parsing throws ydb::ParseError.
Definition at line 109 of file structs.hpp.