|
JSON Voorhees
Killer JSON for C++
|
Inheritance diagram for jsonv::adapter_builder< T >:
Collaboration diagram for jsonv::adapter_builder< T >:Public Types | |
| using | pre_deserialize_func = std::function< void(deserialization_context &)> |
| using | post_deserialize_func = std::function< T(deserialization_context &, T &&)> |
| using | unknown_members_func = std::function< void(deserialization_context &, std::set< std::string >)> |
Public Member Functions | |
| template<typename F > | |
| adapter_builder (formats_builder *owner, F &&f) | |
| adapter_builder (formats_builder *owner) | |
| adapter_builder< T > & | type_default_on_null (bool on=true) |
| adapter_builder< T > & | type_default_value (std::function< T(deserialization_context &ctx)> create) |
| adapter_builder< T > & | type_default_value (const T &value) |
| template<typename TMember > | |
| member_adapter_builder< T, TMember > | member (std::string name, TMember T::*selector) |
| template<typename TMember > | |
| member_adapter_builder< T, TMember > | member (std::string name, std::function< const TMember &(const T &)> access, std::function< void(T &, TMember &&)> mutate) |
| template<typename TMember > | |
| member_adapter_builder< T, TMember > | member (std::string name, const TMember &(T::*access)() const, TMember &(T::*mutable_access)()) |
| template<typename TMember > | |
| member_adapter_builder< T, TMember > | member (std::string name, const TMember &(T::*access)() const, void(T::*mutate)(TMember)) |
| template<typename TMember > | |
| member_adapter_builder< T, TMember > | member (std::string name, const TMember &(T::*access)() const, void(T::*mutate)(TMember &&)) |
| adapter_builder< T > & | pre_deserialize (pre_deserialize_func perform) |
| adapter_builder< T > & | post_deserialize (post_deserialize_func perform) |
| adapter_builder< T > & | on_unknown_members (unknown_members_func handler) |
The handler is stored rather than desugared into a pre_deserialize, because the keys which claimed no member are only known once the walk is done. | |
Definition at line 1289 of file serialization_builder.hpp.
| using jsonv::adapter_builder< T >::post_deserialize_func = std::function<T (deserialization_context&, T&&)> |
Definition at line 1294 of file serialization_builder.hpp.
| using jsonv::adapter_builder< T >::pre_deserialize_func = std::function<void (deserialization_context&)> |
Definition at line 1293 of file serialization_builder.hpp.
| using jsonv::adapter_builder< T >::unknown_members_func = std::function<void (deserialization_context&, std::set<std::string>)> |
Definition at line 1295 of file serialization_builder.hpp.
|
inlineexplicit |
Definition at line 1299 of file serialization_builder.hpp.
|
inlineexplicit |
Definition at line 1310 of file serialization_builder.hpp.
|
inline |
Definition at line 1352 of file serialization_builder.hpp.
|
inline |
Definition at line 1376 of file serialization_builder.hpp.
|
inline |
Definition at line 1364 of file serialization_builder.hpp.
|
inline |
| std::invalid_argument | if a member with this name is already declared for T. |
Definition at line 1340 of file serialization_builder.hpp.
|
inline |
| std::invalid_argument | if a member with this name is already declared for T. |
Definition at line 1333 of file serialization_builder.hpp.
|
inline |
The handler is stored rather than desugared into a pre_deserialize, because the keys which claimed no member are only known once the walk is done.
It is still registered against the members as they stand at deserialization time rather than at build time – the key loop does the matching – so declaring it before the members it validates against keeps working.
Definition at line 1426 of file serialization_builder.hpp.
|
inline |
Definition at line 1405 of file serialization_builder.hpp.
|
inline |
Definition at line 1387 of file serialization_builder.hpp.
|
inline |
Definition at line 1314 of file serialization_builder.hpp.
|
inline |
Definition at line 1326 of file serialization_builder.hpp.
|
inline |
Definition at line 1320 of file serialization_builder.hpp.