#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 |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |