30template <
typename T,
typename FDeserialize,
typename FSerialize>
36 template <
typename FUDeserialize,
typename FUSerialize>
38 _deserialize(
std::forward<FUDeserialize>(deserialize_)),
39 _serialize(
std::forward<FUSerialize>(serialize_))
46 return detail::invoke_deserialize<T>(_deserialize,
context, from);
51 detail::invoke_serialize<T>(_serialize,
context, from, to);
55 FDeserialize _deserialize;
56 FSerialize _serialize;
61template <
typename FDeserialize,
typename FSerialize>
67 (std::move(deserialize_), std::move(serialize_));
Copyright (c) 2015-2026 by Travis Gockel.
An adapter for the type T.
Provides extra information to routines used for deserialization and serialization.
Provides extra information to routines used for deserialization, collects the problems they encounter...
An adapter which calls one function to deserialize and another to serialize.
virtual std::expected< T, ast_node_type > create(deserialization_context &context, reader &from) const override
Create an instance of T by reading from.
function_adapter(FUDeserialize &&deserialize_, FUSerialize &&serialize_)
Create an adapter which deserializes by calling deserialize_ and serializes by calling serialize_.
virtual void serialize(const serialization_context &context, const T &from, writer &to) const override
Write from into to.
A reader instance reads from some form of JSON source (probably a string) and converts it into a JSON...
Provides extra information to routines used for serialization: the formats to find other serializers ...
A writer instance writes a JSON ast_node sequence to some form of sink: an encoder,...
Copyright (c) 2014-2020 by Travis Gockel.
Deserialization of C++ types from a JSON AST.
#define JSONV_NODISCARD
Warn if the caller discards the result of this function.
auto make_adapter(FDeserialize deserialize_, FSerialize serialize_) -> function_adapter< detail::deserialize_function_result_t< FDeserialize >, FDeserialize, FSerialize >
Create an adapter from deserialize_ and serialize_, deducing the adapted type from what deserialize_ ...
Serialization of C++ types into a JSON token stream.