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

#include <di/serialization/serialize.h>

Public Member Functions

template<concepts::Serializer S, typename T, typename F = meta::SerializationFormat<S>>
requires (concepts::TagInvocable<SerializeFunction, F, S&, T&> || requires(S& serializer, T& value) { serializer.serialize(value); })
constexpr auto operator() (S &&serializer, T &&value) const -> meta::SerializeResult< S >
 
template<concepts::Serializer S, typename T, typename F = meta::SerializationFormat<S>, typename M = meta::SerializeMetadata<F, T>>
requires (!concepts::TagInvocable<SerializeFunction, F, S&, T&> && !requires(S& serializer, T& value) { serializer.serialize(value); } && (concepts::TagInvocable<SerializeFunction, S&, T&, M> || requires(S& serializer, T& value) { serializer.serialize(value, M()); }))
constexpr auto operator() (S &&serializer, T &&value) const -> meta::SerializeResult< S >
 
template<typename Format, concepts::Impl< io::Writer > Writer, typename T, typename... Args>
requires (concepts::SerializationFormat<Format, util::ReferenceWrapper<meta::RemoveReference<Writer>>, Args...>) (requires { (*this)(serialization::serializer(format, util::ref(writer), util::forward<Args>(args)...), value); })
constexpr auto operator() (Format format, Writer &&writer, T &&value, Args &&... args) const
 

Member Function Documentation

◆ operator()() [1/3]

template<typename Format, concepts::Impl< io::Writer > Writer, typename T, typename... Args>
requires (concepts::SerializationFormat<Format, util::ReferenceWrapper<meta::RemoveReference<Writer>>, Args...>) (requires { (*this)(serialization::serializer(format, util::ref(writer), util::forward<Args>(args)...), value); })
auto di::serialization::detail::SerializeFunction::operator() ( Format format,
Writer && writer,
T && value,
Args &&... args ) const
inlineconstexpr

◆ operator()() [2/3]

template<concepts::Serializer S, typename T, typename F = meta::SerializationFormat<S>>
requires (concepts::TagInvocable<SerializeFunction, F, S&, T&> || requires(S& serializer, T& value) { serializer.serialize(value); })
auto di::serialization::detail::SerializeFunction::operator() ( S && serializer,
T && value ) const -> meta::SerializeResult<S>
inlineconstexpr

◆ operator()() [3/3]

template<concepts::Serializer S, typename T, typename F = meta::SerializationFormat<S>, typename M = meta::SerializeMetadata<F, T>>
requires (!concepts::TagInvocable<SerializeFunction, F, S&, T&> && !requires(S& serializer, T& value) { serializer.serialize(value); } && (concepts::TagInvocable<SerializeFunction, S&, T&, M> || requires(S& serializer, T& value) { serializer.serialize(value, M()); }))
auto di::serialization::detail::SerializeFunction::operator() ( S && serializer,
T && value ) const -> meta::SerializeResult<S>
inlineconstexpr

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