JSON Voorhees
Killer JSON for C++
Loading...
Searching...
No Matches
jsonv::formats_builder Class Reference

Public Member Functions

template<typename T >
adapter_builder< T > type ()
 
template<typename T , typename F >
adapter_builder< T > type (F &&f)
 
template<typename TEnum >
formats_builderenum_type (std::string enum_name, std::initializer_list< std::pair< TEnum, value > > mapping)
 
template<typename TEnum >
formats_builderenum_type_icase (std::string enum_name, std::initializer_list< std::pair< TEnum, value > > mapping)
 
template<typename TPointer >
polymorphic_adapter_builder< TPointerpolymorphic_type (std::string discrimination_key="")
 
template<typename TPointer , typename F >
polymorphic_adapter_builder< TPointerpolymorphic_type (std::string discrimination_key, F &&f)
 
template<typename F >
formats_builderextend (F &&func)
 
formats_builderregister_adapter (const adapter *p)
 
formats_builderregister_adapter (std::shared_ptr< const adapter > p)
 
template<typename TOptional >
formats_builderregister_optional ()
 
template<typename TContainer >
formats_builderregister_container ()
 
template<typename TWrapper >
formats_builderregister_wrapper ()
 
template<typename T >
formats_builderregister_containers ()
 
template<typename T , template< class... > class TTContainer, template< class... > class... TTRest>
formats_builderregister_containers ()
 
 operator formats () const
 
formats_builderreference_type (std::type_index type)
 
formats_builderreference_type (std::type_index type, std::type_index from)
 
formats_builderon_duplicate_type (duplicate_type_action action) noexcept
 Assigns the action to perform when a serializer or extractor is being registered by this formats_builder and there is already a serializer or extracter for that type.
 
formats_buildercheck_references (const formats &other, const std::string &name="")
 
formats_buildercheck_references (const formats::list &others, const std::string &name="")
 
formats_buildercheck_references (const std::string &name="")
 
formats compose_checked (formats other, const std::string &name="")
 
formats compose_checked (const formats::list &others, const std::string &name="")
 

Detailed Description

Definition at line 1239 of file serialization_builder.hpp.

Member Function Documentation

◆ check_references()

formats_builder & jsonv::formats_builder::check_references ( const formats other,
const std::string &  name = "" 
)

Check that, when combined with the formats other, all types referenced by this formats_builder will get decoded properly.

Parameters
nameif non-empty and this function throws, this name will be provided in the exception's what string. This can be useful if you are running multiple check_references calls and you want to name the different checks.
Exceptions
std::logic_errorif formats this formats_builder is generating, when combined with the provided other formats, cannot properly serialize all the types.

◆ compose_checked()

formats jsonv::formats_builder::compose_checked ( formats  other,
const std::string &  name = "" 
)

Check the references of this builder (see check_references) and compose a formats instance if successful (see formats::compose).

◆ enum_type()

template<typename TEnum >
formats_builder & jsonv::formats_builder::enum_type ( std::string  enum_name,
std::initializer_list< std::pair< TEnum, value > >  mapping 
)
inline

Definition at line 1257 of file serialization_builder.hpp.

◆ enum_type_icase()

template<typename TEnum >
formats_builder & jsonv::formats_builder::enum_type_icase ( std::string  enum_name,
std::initializer_list< std::pair< TEnum, value > >  mapping 
)
inline

Definition at line 1265 of file serialization_builder.hpp.

◆ extend()

template<typename F >
formats_builder & jsonv::formats_builder::extend ( F &&  func)
inline

Definition at line 1287 of file serialization_builder.hpp.

◆ operator formats()

jsonv::formats_builder::operator formats ( ) const
inline

Definition at line 1345 of file serialization_builder.hpp.

◆ polymorphic_type() [1/2]

template<typename TPointer , typename F >
polymorphic_adapter_builder< TPointer > jsonv::formats_builder::polymorphic_type ( std::string  discrimination_key,
F &&  f 
)
inline

Definition at line 1281 of file serialization_builder.hpp.

◆ polymorphic_type() [2/2]

template<typename TPointer >
polymorphic_adapter_builder< TPointer > jsonv::formats_builder::polymorphic_type ( std::string  discrimination_key = "")
inline

Definition at line 1274 of file serialization_builder.hpp.

◆ register_adapter() [1/2]

formats_builder & jsonv::formats_builder::register_adapter ( const adapter p)
inline

Definition at line 1293 of file serialization_builder.hpp.

◆ register_adapter() [2/2]

formats_builder & jsonv::formats_builder::register_adapter ( std::shared_ptr< const adapter p)
inline

Definition at line 1299 of file serialization_builder.hpp.

◆ register_container()

template<typename TContainer >
formats_builder & jsonv::formats_builder::register_container ( )
inline

Definition at line 1315 of file serialization_builder.hpp.

◆ register_containers() [1/2]

template<typename T >
formats_builder & jsonv::formats_builder::register_containers ( )
inline

Definition at line 1333 of file serialization_builder.hpp.

◆ register_containers() [2/2]

template<typename T , template< class... > class TTContainer, template< class... > class... TTRest>
formats_builder & jsonv::formats_builder::register_containers ( )
inline

Definition at line 1339 of file serialization_builder.hpp.

◆ register_optional()

template<typename TOptional >
formats_builder & jsonv::formats_builder::register_optional ( )
inline

Definition at line 1306 of file serialization_builder.hpp.

◆ register_wrapper()

template<typename TWrapper >
formats_builder & jsonv::formats_builder::register_wrapper ( )
inline

Definition at line 1324 of file serialization_builder.hpp.

◆ type() [1/2]

template<typename T >
adapter_builder< T > jsonv::formats_builder::type ( )
inline

Definition at line 1245 of file serialization_builder.hpp.

◆ type() [2/2]

template<typename T , typename F >
adapter_builder< T > jsonv::formats_builder::type ( F &&  f)
inline

Definition at line 1251 of file serialization_builder.hpp.


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