Iros
 
Loading...
Searching...
No Matches
di::serialization::detail::DeserializeInPlaceFunction Struct Reference

#include <di/serialization/deserialize.h>

Public Member Functions

template<concepts::Deserializer D, typename T, typename F = meta::DeserializationFormat<D>>
requires (concepts::TagInvocable<DeserializeInPlaceFunction, F, D&, InPlaceType<T>> || requires(D&& deserializer) { deserializer.deserialize(in_place_type<T>); })
constexpr auto operator() (D &&deserializer, InPlaceType< T >) const -> meta::DeserializeResult< D, T >
 
template<concepts::Deserializer D, typename T, typename M = meta::DeserializeMetadata<meta::DeserializationFormat<D>, T>>
requires (!(concepts::TagInvocable<DeserializeInPlaceFunction, D&, InPlaceType<T>> || requires(D&& deserializer) { deserializer.deserialize(in_place_type<T>); }) && (concepts::TagInvocable<DeserializeInPlaceFunction, D&, InPlaceType<T>, M> || requires(D&& deserializer) { deserializer.deserialize(in_place_type<T>, M {}); }))
constexpr auto operator() (D &&deserializer, InPlaceType< T >) const -> meta::DeserializeResult< D, T >
 
template<typename Format, concepts::Impl< io::Reader > Reader, typename T, typename... Args>
requires (concepts::DeserializationFormat<Format, Reader, Args...>) (requires { (*this)(serialization::deserializer(format, util::forward<Reader>(reader)), in_place_type<T>, util::forward<Args>(args)...); })
constexpr auto operator() (Format format, Reader &&reader, InPlaceType< T >, Args &&... args) const
 

Member Function Documentation

◆ operator()() [1/3]

template<concepts::Deserializer D, typename T, typename F = meta::DeserializationFormat<D>>
requires (concepts::TagInvocable<DeserializeInPlaceFunction, F, D&, InPlaceType<T>> || requires(D&& deserializer) { deserializer.deserialize(in_place_type<T>); })
auto di::serialization::detail::DeserializeInPlaceFunction::operator() ( D && deserializer,
InPlaceType< T >  ) const -> meta::DeserializeResult<D, T>
inlineconstexpr

◆ operator()() [2/3]

template<concepts::Deserializer D, typename T, typename M = meta::DeserializeMetadata<meta::DeserializationFormat<D>, T>>
requires (!(concepts::TagInvocable<DeserializeInPlaceFunction, D&, InPlaceType<T>> || requires(D&& deserializer) { deserializer.deserialize(in_place_type<T>); }) && (concepts::TagInvocable<DeserializeInPlaceFunction, D&, InPlaceType<T>, M> || requires(D&& deserializer) { deserializer.deserialize(in_place_type<T>, M {}); }))
auto di::serialization::detail::DeserializeInPlaceFunction::operator() ( D && deserializer,
InPlaceType< T >  ) const -> meta::DeserializeResult<D, T>
inlineconstexpr

◆ operator()() [3/3]

template<typename Format, concepts::Impl< io::Reader > Reader, typename T, typename... Args>
requires (concepts::DeserializationFormat<Format, Reader, Args...>) (requires { (*this)(serialization::deserializer(format, util::forward<Reader>(reader)), in_place_type<T>, util::forward<Args>(args)...); })
auto di::serialization::detail::DeserializeInPlaceFunction::operator() ( Format format,
Reader && reader,
InPlaceType< T > ,
Args &&... args ) const
inlineconstexpr

The documentation for this struct was generated from the following file: