default_serialize.h Source File
|
CPP API
|
default_serialize.h
Go to the documentation of this file.
68 void default_serialize_impl(IOContext& io, const char* name, const NamedRef<Members>... named_refs)
83 IOResult<DefaultSerializable> default_deserialize_impl(IOContext& io, DefaultSerializable& a, const char* name,
88 // we cannot use expect_named_ref directly in apply, as function arguments have no guarantueed order of evaluation
141 return Members<ValueTypes..., T>{name, std::tuple_cat(named_refs, std::tuple(NamedRef{member_name, member}))};
void default_serialize_impl(IOContext &io, const char *name, const NamedRef< Members >... named_refs)
Unpack all name-value pairs from the tuple and add them to a new io object with the given name.
Definition: default_serialize.h:68
IOResult< Member > expect_named_ref(IOObject &obj, const NamedRef< Member > named_ref)
Retrieve a name-value pair from an io object.
Definition: default_serialize.h:76
void add_named_ref(IOObject &obj, const NamedRef< Member > named_ref)
Add a name-value pair to an io object.
Definition: default_serialize.h:61
IOResult< DefaultSerializable > default_deserialize_impl(IOContext &io, DefaultSerializable &a, const char *name, NamedRef< Members >... named_refs)
Read an io object and its members from the io context using the given names and assign the values to ...
Definition: default_serialize.h:83
A collection of classes to simplify handling of matrix shapes in meta programming.
Definition: models/abm/analyze_result.h:30
concept IsDefaultDeserializable
Detect whether T has a default_serialize member function, but no deserialize member.
Definition: default_serialize.h:198
boost::outcome_v2::in_place_type_t< T > Tag
Type that is used for overload resolution.
Definition: io.h:407
details::ApplyResultT< F, T... > apply(IOContext &io, F f, const IOResult< T > &... rs)
Evaluate a function with zero or more unpacked IOResults as arguments.
Definition: io.h:481
requires(!std::is_trivial_v< T >) void BinarySerializerObject
Definition: binary_serializer.h:333
void unused(T &&...)
Does nothing, can be used to mark variables as not used.
Definition: compiler_diagnostics.h:30
concept IsDefaultSerializable
Detect whether T has a default_serialize member function, but no serialize member.
Definition: default_serialize.h:187
boost::outcome_v2::unchecked< T, IOStatus > IOResult
Value-or-error type for operations that return a value but can fail.
Definition: io.h:353
IOResult< T > deserialize_internal(IOContext &io, Tag< T > tag)
Deserialization implementation for the default serialization feature.
Definition: default_serialize.h:236
void serialize_internal(IOContext &io, const T &a)
Serialization implementation for the default serialization feature.
Definition: default_serialize.h:213
Creates an instance of T for later initialization.
Definition: default_serialize.h:173
static T create()
Creates a new instance of T.
Definition: default_serialize.h:175
Members(const char *class_name)
Initialize Members with a class name.
Definition: default_serialize.h:122
std::tuple< NamedRef< ValueTypes >... > named_refs
Names and references to members of the class.
Definition: default_serialize.h:145
Members< ValueTypes..., T > add(const char *member_name, T &member)
Add a class member.
Definition: default_serialize.h:139
Members(const char *class_name, std::tuple< NamedRef< ValueTypes >... > named_references)
Initialize Members directly.
Definition: default_serialize.h:153
NamedRef(const char *n, Reference v)
Create a named reference.
Definition: default_serialize.h:50
Generated by