Iros
 
Loading...
Searching...
No Matches
di::JsonDeserializer< Reader > Class Template Reference

A deserializer for the JSON format. More...

#include <di/serialization/json_deserializer.h>

Public Types

using DeserializationFormat = JsonFormat
 

Public Member Functions

template<typename T>
requires (concepts::ConstructibleFrom<Reader, T>)
constexpr JsonDeserializer (T &&reader)
 
constexpr auto deserialize (InPlaceType< json::Value >) -> Result< json::Value >
 
template<typename T, concepts::InstanceOf< reflection::Fields > M>
constexpr auto deserialize (InPlaceType< T >, M fields) -> Result< T >
 
template<typename T, concepts::InstanceOf< reflection::Enumerators > M>
constexpr auto deserialize (InPlaceType< T >, M enumerators) -> Result< T >
 
template<typename T, concepts::InstanceOf< reflection::Atom > M>
requires (M::is_bool() || M::is_integer() || M::is_string())
constexpr auto deserialize (InPlaceType< T >, M) -> Result< T >
 
template<typename T, concepts::InstanceOf< reflection::Atom > M>
requires (M::is_list() && concepts::Deserializable<meta::ContainerValue<T>, JsonDeserializer>)
constexpr auto deserialize (InPlaceType< T >, M) -> Result< T >
 
template<typename T, concepts::InstanceOf< reflection::Atom > M>
requires (M::is_map() && concepts::SameAs<json::String, meta::TupleElement<meta::ContainerValue<T>, 0>> && concepts::Deserializable<meta::TupleElement<meta::ContainerValue<T>, 1>, JsonDeserializer>)
constexpr auto deserialize (InPlaceType< T >, M) -> Result< T >
 
constexpr auto deserialize (InPlaceType< json::Null >) -> Result< json::Null >
 
constexpr auto reader () &-> Reader &
 
constexpr auto reader () const &-> Reader const &
 
constexpr auto reader () &&-> Reader &&
 

Detailed Description

A deserializer for the JSON format.

Template Parameters
ReaderThe type of the reader to read from.

This implements the JSON grammar as specified in RFC 8259.

Member Typedef Documentation

◆ DeserializationFormat

template<concepts::Impl< io::Reader > Reader>
using di::serialization::JsonDeserializer< Reader >::DeserializationFormat = JsonFormat

Constructor & Destructor Documentation

◆ JsonDeserializer()

template<concepts::Impl< io::Reader > Reader>
template<typename T>
requires (concepts::ConstructibleFrom<Reader, T>)
di::serialization::JsonDeserializer< Reader >::JsonDeserializer ( T && reader)
inlineexplicitconstexpr

Member Function Documentation

◆ deserialize() [1/7]

template<concepts::Impl< io::Reader > Reader>
auto di::serialization::JsonDeserializer< Reader >::deserialize ( InPlaceType< json::Null > ) -> Result<json::Null>
inlineconstexpr

◆ deserialize() [2/7]

template<concepts::Impl< io::Reader > Reader>
auto di::serialization::JsonDeserializer< Reader >::deserialize ( InPlaceType< json::Value > ) -> Result<json::Value>
inlineconstexpr

◆ deserialize() [3/7]

template<concepts::Impl< io::Reader > Reader>
template<typename T, concepts::InstanceOf< reflection::Enumerators > M>
auto di::serialization::JsonDeserializer< Reader >::deserialize ( InPlaceType< T > ,
M enumerators ) -> Result<T>
inlineconstexpr

◆ deserialize() [4/7]

template<concepts::Impl< io::Reader > Reader>
template<typename T, concepts::InstanceOf< reflection::Fields > M>
auto di::serialization::JsonDeserializer< Reader >::deserialize ( InPlaceType< T > ,
M fields ) -> Result<T>
inlineconstexpr

◆ deserialize() [5/7]

template<concepts::Impl< io::Reader > Reader>
template<typename T, concepts::InstanceOf< reflection::Atom > M>
requires (M::is_bool() || M::is_integer() || M::is_string())
auto di::serialization::JsonDeserializer< Reader >::deserialize ( InPlaceType< T > ,
M  ) -> Result<T>
inlineconstexpr

◆ deserialize() [6/7]

template<concepts::Impl< io::Reader > Reader>
template<typename T, concepts::InstanceOf< reflection::Atom > M>
requires (M::is_list() && concepts::Deserializable<meta::ContainerValue<T>, JsonDeserializer>)
auto di::serialization::JsonDeserializer< Reader >::deserialize ( InPlaceType< T > ,
M  ) -> Result<T>
inlineconstexpr

◆ deserialize() [7/7]

template<concepts::Impl< io::Reader > Reader>
template<typename T, concepts::InstanceOf< reflection::Atom > M>
requires (M::is_map() && concepts::SameAs<json::String, meta::TupleElement<meta::ContainerValue<T>, 0>> && concepts::Deserializable<meta::TupleElement<meta::ContainerValue<T>, 1>, JsonDeserializer>)
auto di::serialization::JsonDeserializer< Reader >::deserialize ( InPlaceType< T > ,
M  ) -> Result<T>
inlineconstexpr

◆ reader() [1/3]

template<concepts::Impl< io::Reader > Reader>
auto di::serialization::JsonDeserializer< Reader >::reader ( ) && -> Reader&&
inlineconstexpr

◆ reader() [2/3]

template<concepts::Impl< io::Reader > Reader>
auto di::serialization::JsonDeserializer< Reader >::reader ( ) & -> Reader&
inlineconstexpr

◆ reader() [3/3]

template<concepts::Impl< io::Reader > Reader>
auto di::serialization::JsonDeserializer< Reader >::reader ( ) const & -> Reader const&
inlineconstexpr

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