20template<concepts::Deserializer S>
26 struct DeserializerFunction {
27 template<
typename Format, concepts::Impl<io::Reader> Reader,
typename... Args>
33 util::forward<Args>(args)...);
35 return Format::deserializer(util::forward<Reader>(reader), util::forward<Args>(args)...);
41constexpr inline auto deserializer = detail::DeserializerFunction {};
45template<
typename T,
typename Reader = any::AnyRef<io::Reader>,
typename... Args>
52template<
typename T,
typename Reader = any::AnyRef<io::Reader>,
typename... Args>
57template<
typename S,
typename T>
63 struct DeserializeMetadataFunction {
64 template<
typename T,
typename F,
typename U = meta::RemoveCVRef<T>,
65 concepts::DeserializationFormat V = meta::RemoveCVRef<F>>
87template<concepts::DeserializationFormat S,
typename T>
93 struct DeserializeInPlaceFunction {
94 template<concepts::Deserializer D,
typename T,
typename F = meta::DeserializationFormat<D>>
119 template<
typename Format, concepts::Impl<io::Reader> Reader,
typename T,
typename... Args>
124 util::forward<Args>(args)...);
128 util::forward<Args>(args)...);
136 struct DeserializableFunction {
137 template<concepts::Deserializer D,
typename T,
typename U = meta::RemoveCVRef<T>>
152template<
typename T,
typename D>
159 struct DeserializeFunction {
166 template<
typename F,
typename R,
typename... Args>
170 constexpr auto operator()(F format, R&& reader, Args&&... args)
const {
172 util::forward<Args>(args)...);
178constexpr inline auto deserialize = detail::DeserializeFunction<meta::RemoveCVRef<T>> {};
182using concepts::Deserializable;
183using concepts::DeserializationFormat;
184using concepts::Deserializer;
Definition deserialize.h:153
Definition deserialize.h:11
Definition tag_invoke.h:33
Definition any_storable.h:9
constexpr tag_invoke_detail::TagInvokeFn tag_invoke
Definition tag_invoke.h:22
meta::List< ReadSome > Reader
Definition reader.h:34
constexpr auto reflect
Definition reflect.h:47
constexpr auto deserializable
Definition deserialize.h:148
constexpr auto deserializer
Definition deserialize.h:41
constexpr auto deserialize_in_place
Definition deserialize.h:133
constexpr auto deserialize_metadata
Definition deserialize.h:83
constexpr auto deserialize
Definition deserialize.h:178
auto declval() -> meta::AddRValueReference< T >
Definition declval.h:8
Definition any_storable.h:9
constexpr auto deserializer
Definition deserialize.h:41
constexpr auto in_place_type
Definition in_place_type.h:12
constexpr auto serializer
Definition serialize.h:43
Definition in_place_type.h:5