Iros
 
Loading...
Searching...
No Matches
di::serialization::JsonSerializer< Writer > Class Template Reference

#include <di/serialization/json_serializer.h>

Public Types

using SerializationFormat = JsonFormat
 

Public Member Functions

template<typename T>
requires (concepts::ConstructibleFrom<Writer, T>)
constexpr JsonSerializer (T &&writer, JsonSerializerConfig config={})
 
constexpr auto serialize_null () -> meta::WriterResult< void, Writer >
 
constexpr auto serialize_bool (bool value) -> meta::WriterResult< void, Writer >
 
constexpr auto serialize_string (container::StringView view) -> meta::WriterResult< void, Writer >
 
constexpr auto serialize_number (concepts::Integral auto number) -> meta::WriterResult< void, Writer >
 
template<concepts::InvocableTo< meta::WriterResult< void, Writer >, JsonSerializer & > F>
constexpr auto serialize_array (F &&function) -> meta::WriterResult< void, Writer >
 
template<concepts::InvocableTo< meta::WriterResult< void, Writer >, ObjectSerializerProxy & > F>
constexpr auto serialize_object (F &&function) -> meta::WriterResult< void, Writer >
 
template<typename T, concepts::InstanceOf< reflection::Fields > M>
constexpr auto serialize (T &&value, M) -> meta::WriterResult< void, Writer >
 
template<typename T, concepts::InstanceOf< reflection::Enumerators > M>
constexpr auto serialize (T value, M) -> meta::WriterResult< void, Writer >
 
template<typename T, concepts::InstanceOf< reflection::Atom > M>
requires (M::is_bool() || M::is_string() || M::is_integer())
constexpr auto serialize (T &&value, M) -> meta::WriterResult< void, Writer >
 
template<typename T, concepts::InstanceOf< reflection::Atom > M>
requires (M::is_list() && concepts::Serializable<meta::ContainerReference<T>, JsonSerializer>)
constexpr auto serialize (T &&value, M) -> meta::WriterResult< void, Writer >
 
template<typename T, concepts::InstanceOf< reflection::Atom > M>
requires (M::is_map() && concepts::detail::ConstantString<meta::TupleElement<meta::ContainerValue<T>, 0>> && concepts::Serializable<meta::TupleValue<decltype(util::declval<meta::ContainerReference<T>>()), 1>, JsonSerializer>)
constexpr auto serialize (T &&value, M) -> meta::WriterResult< void, Writer >
 
constexpr auto writer () &-> Writer &
 
constexpr auto writer () const &-> Writer const &
 
constexpr auto writer () &&-> Writer &&
 

Member Typedef Documentation

◆ SerializationFormat

template<concepts::Impl< Writer > Writer>
using di::serialization::JsonSerializer< Writer >::SerializationFormat = JsonFormat

Constructor & Destructor Documentation

◆ JsonSerializer()

template<concepts::Impl< Writer > Writer>
template<typename T>
requires (concepts::ConstructibleFrom<Writer, T>)
di::serialization::JsonSerializer< Writer >::JsonSerializer ( T && writer,
JsonSerializerConfig config = {} )
inlineexplicitconstexpr

Member Function Documentation

◆ serialize() [1/5]

template<concepts::Impl< Writer > Writer>
template<typename T, concepts::InstanceOf< reflection::Fields > M>
auto di::serialization::JsonSerializer< Writer >::serialize ( T && value,
M  ) -> meta::WriterResult<void, Writer>
inlineconstexpr

◆ serialize() [2/5]

template<concepts::Impl< Writer > Writer>
template<typename T, concepts::InstanceOf< reflection::Atom > M>
requires (M::is_bool() || M::is_string() || M::is_integer())
auto di::serialization::JsonSerializer< Writer >::serialize ( T && value,
M  ) -> meta::WriterResult<void, Writer>
inlineconstexpr

◆ serialize() [3/5]

template<concepts::Impl< Writer > Writer>
template<typename T, concepts::InstanceOf< reflection::Atom > M>
requires (M::is_list() && concepts::Serializable<meta::ContainerReference<T>, JsonSerializer>)
auto di::serialization::JsonSerializer< Writer >::serialize ( T && value,
M  ) -> meta::WriterResult<void, Writer>
inlineconstexpr

◆ serialize() [4/5]

template<concepts::Impl< Writer > Writer>
template<typename T, concepts::InstanceOf< reflection::Atom > M>
requires (M::is_map() && concepts::detail::ConstantString<meta::TupleElement<meta::ContainerValue<T>, 0>> && concepts::Serializable<meta::TupleValue<decltype(util::declval<meta::ContainerReference<T>>()), 1>, JsonSerializer>)
auto di::serialization::JsonSerializer< Writer >::serialize ( T && value,
M  ) -> meta::WriterResult<void, Writer>
inlineconstexpr

◆ serialize() [5/5]

template<concepts::Impl< Writer > Writer>
template<typename T, concepts::InstanceOf< reflection::Enumerators > M>
auto di::serialization::JsonSerializer< Writer >::serialize ( T value,
M  ) -> meta::WriterResult<void, Writer>
inlineconstexpr

◆ serialize_array()

template<concepts::Impl< Writer > Writer>
template<concepts::InvocableTo< meta::WriterResult< void, Writer >, JsonSerializer & > F>
auto di::serialization::JsonSerializer< Writer >::serialize_array ( F && function) -> meta::WriterResult<void, Writer>
inlineconstexpr

◆ serialize_bool()

template<concepts::Impl< Writer > Writer>
auto di::serialization::JsonSerializer< Writer >::serialize_bool ( bool value) -> meta::WriterResult<void, Writer>
inlineconstexpr

◆ serialize_null()

template<concepts::Impl< Writer > Writer>
auto di::serialization::JsonSerializer< Writer >::serialize_null ( ) -> meta::WriterResult<void, Writer>
inlineconstexpr

◆ serialize_number()

template<concepts::Impl< Writer > Writer>
auto di::serialization::JsonSerializer< Writer >::serialize_number ( concepts::Integral auto number) -> meta::WriterResult<void, Writer>
inlineconstexpr

◆ serialize_object()

template<concepts::Impl< Writer > Writer>
template<concepts::InvocableTo< meta::WriterResult< void, Writer >, ObjectSerializerProxy & > F>
auto di::serialization::JsonSerializer< Writer >::serialize_object ( F && function) -> meta::WriterResult<void, Writer>
inlineconstexpr

◆ serialize_string()

template<concepts::Impl< Writer > Writer>
auto di::serialization::JsonSerializer< Writer >::serialize_string ( container::StringView view) -> meta::WriterResult<void, Writer>
inlineconstexpr

◆ writer() [1/3]

template<concepts::Impl< Writer > Writer>
auto di::serialization::JsonSerializer< Writer >::writer ( ) && -> Writer&&
inlineconstexpr

◆ writer() [2/3]

template<concepts::Impl< Writer > Writer>
auto di::serialization::JsonSerializer< Writer >::writer ( ) & -> Writer&
inlineconstexpr

◆ writer() [3/3]

template<concepts::Impl< Writer > Writer>
auto di::serialization::JsonSerializer< Writer >::writer ( ) const & -> Writer const&
inlineconstexpr

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