40template<Impl<io::Writer> Writer>
45 template<concepts::NotDecaysTo<BinarySerializer> T>
46 requires(ConstructibleFrom<Writer, T>)
50 template<
typename T, concepts::InstanceOf<reflection::Fields> M>
70 auto const index =
u64(value.index());
73 [&](
auto&& alternative) {
79 template<concepts::IntegralOrEnum T>
86 template<
typename T, concepts::InstanceOf<reflection::Atom> M>
87 requires(M::is_string())
93 template<concepts::SizedContainer T>
106 constexpr auto writer() && ->
Writer&& {
return util::move(*this).m_writer; }
115template<Impl<io::Reader> Reader>
119 template<concepts::Impl<io::Writer> Writer,
typename... Args>
120 requires(ConstructibleFrom<BinarySerializer<meta::RemoveCVRef<Writer>>,
Writer, Args...>)
125 template<concepts::Impl<io::Reader> Reader,
typename... Args>
126 requires(ConstructibleFrom<BinaryDeserializer<meta::RemoveCVRef<Reader>>,
Reader, Args...>)
136 template<Impl<io::Writer> Writer, Serializable<BinarySerializer<Writer>> T,
typename... Args>
137 requires(ConstructibleFrom<BinarySerializer<ReferenceWrapper<meta::RemoveReference<Writer>>>,
139 constexpr auto operator()(
Writer&& writer, T&& value, Args&&... args)
const {
150using serialization::BinaryFormat;
Definition little_endian.h:25
A deserializer for a simple binary format.
Definition binary_serializer.h:116
constexpr BinaryDeserializer(T &&reader)
Definition binary_deserializer.h:56
A serializer for a simple binary format.
Definition binary_serializer.h:41
constexpr auto writer() const &-> Writer const &
Definition binary_serializer.h:105
constexpr auto serialize(concepts::TupleLike auto &&value)
Definition binary_serializer.h:59
constexpr auto serialize(T value)
Definition binary_serializer.h:80
constexpr auto writer() &-> Writer &
Definition binary_serializer.h:104
constexpr BinarySerializer(T &&writer)
Definition binary_serializer.h:48
constexpr auto serialize(T &&value, M)
Definition binary_serializer.h:88
constexpr auto serialize(T &&value) -> meta::WriterResult< void, Writer >
Definition binary_serializer.h:95
constexpr auto writer() &&-> Writer &&
Definition binary_serializer.h:106
constexpr auto serialize(T &&value, M)
Definition binary_serializer.h:51
constexpr auto serialize(concepts::VariantLike auto &&value) -> meta::WriterResult< void, Writer >
Definition binary_serializer.h:67
BinaryFormat SerializationFormat
Definition binary_serializer.h:43
Definition reference_wrapper.h:14
Definition serialize.h:175
Definition tuple_like.h:38
Definition variant_like.h:37
#define DI_TRY(...)
Definition monad_try.h:13
constexpr auto sequence
Definition sequence.h:34
constexpr auto size
Definition size.h:54
constexpr auto write_exactly
Definition write_exactly.h:51
meta::List< ReadSome > Reader
Definition reader.h:34
meta::List< WriteSome, Flush > Writer
Definition writer.h:59
Definition json_deserializer.h:532
Definition binary_deserializer.h:33
BinarySerializer(T &&) -> BinarySerializer< T >
constexpr auto serialize
Definition serialize.h:130
constexpr auto serialize_binary
Definition binary_serializer.h:145
constexpr auto binary_format
Definition binary_serializer.h:132
std::byte byte
Definition byte.h:64
__UINT64_TYPE__ u64
Definition integers.h:12
Definition zstring_parser.h:9
constexpr auto ref
Definition reference_wrapper.h:98
constexpr auto serialize
Definition serialize.h:130
constexpr auto visit(Vis &&visitor, Vars &&... variants) -> R
Definition visit.h:39
constexpr auto field
Definition field.h:42
constexpr auto tuple_sequence
Definition tuple_sequence.h:36
constexpr auto as_bytes
Definition as_bytes.h:16
constexpr auto size
Definition size.h:54
Definition binary_serializer.h:135
Definition span_fixed_size.h:37