JSON Voorhees
Killer JSON for C++
Loading...
Searching...
No Matches
jsonv::function_deserializer< T, FDeserialize > Class Template Reference

A deserializer which calls a function to perform deserialization. More...

#include <jsonv/serialization/function_deserializer.hpp>

+ Inheritance diagram for jsonv::function_deserializer< T, FDeserialize >:
+ Collaboration diagram for jsonv::function_deserializer< T, FDeserialize >:

Public Member Functions

template<typename FUDeserialize >
requires (!std::same_as<std::remove_cvref_t<FUDeserialize>, function_deserializer>)
 function_deserializer (FUDeserialize &&func)
 
- Public Member Functions inherited from jsonv::deserializer_for< T >
virtual const std::type_info & get_type () const noexcept override
 
virtual std::expected< void, ast_node_type > deserialize (deserialization_context &context, reader &from, void *into) const override
 

Protected Member Functions

virtual std::expected< T, ast_node_type > create (deserialization_context &context, reader &from) const override
 Create an instance of T by reading from.
 

Detailed Description

template<typename T, typename FDeserialize>
class jsonv::function_deserializer< T, FDeserialize >

A deserializer which calls a function to perform deserialization.

The function may take any of the shapes detail::invoke_deserialize accepts and may return either a T or a std::expected<T, ast_node_type>.

Definition at line 33 of file function_deserializer.hpp.

Constructor & Destructor Documentation

◆ function_deserializer()

template<typename T , typename FDeserialize >
template<typename FUDeserialize >
requires (!std::same_as<std::remove_cvref_t<FUDeserialize>, function_deserializer>)
jsonv::function_deserializer< T, FDeserialize >::function_deserializer ( FUDeserialize &&  func)
inlineexplicit

Definition at line 41 of file function_deserializer.hpp.

Member Function Documentation

◆ create()

template<typename T , typename FDeserialize >
virtual std::expected< T, ast_node_type > jsonv::function_deserializer< T, FDeserialize >::create ( deserialization_context &  context,
reader &  from 
) const
inlineoverrideprotectedvirtual

Create an instance of T by reading from.

See also
adapter_for::create

Implements jsonv::deserializer_for< T >.

Definition at line 47 of file function_deserializer.hpp.


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