parcel 0.2.2
Wrappable, wire-transferable C++23 value system with JSON serialization
Loading...
Searching...
No Matches
struct.h File Reference

StructCell CRTP base, FieldsBuilder, and the per-field descriptors. More...

#include <parcel/cell.h>
#include <parcel/defaults.h>
#include <parcel/descriptor.h>
#include <parcel/list.h>
#include <parcel/map.h>
#include <parcel/primitive.h>
#include <parcel/registry.h>
#include <algorithm>
#include <map>
#include <memory>
#include <optional>
#include <stdexcept>
#include <string>
#include <string_view>
#include <type_traits>
#include <utility>
#include <vector>
Include dependency graph for struct.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  parcel::IPayloadFieldDescriptor< Payload >
 Field-descriptor extension that knows how to read/write a specific Payload. More...
 
class  parcel::MemberFieldDescriptor< Payload, FieldT, CellT >
 Concrete payload field descriptor backed by a member pointer. More...
 
class  parcel::InheritedFieldDescriptor< DerivedPayload, ParentPayload >
 Adapter that lets a parent struct's payload field descriptor be reused by a derived struct. More...
 
class  parcel::FieldsBuilder< Payload >
 Fluent builder used inside Derived::field_descriptors() to declare struct fields. More...
 
class  parcel::StructCellTypeDescriptor< Derived, Payload >
 Descriptor for StructCell<Derived, Payload>. More...
 
class  parcel::StructCell< Derived, Payload, StructId >
 CRTP base for user-defined struct cells. More...
 
class  parcel::SelfStructCell< Derived >
 CRTP base for struct cells that are their own payload. More...
 

Detailed Description

StructCell CRTP base, FieldsBuilder, and the per-field descriptors.

StructCell<Derived, Payload> makes a plain user-defined Payload struct addressable through the cell interface: each field is a runtime IPayloadFieldDescriptor keyed by JSON name and pointing back at the payload via a member pointer. FieldsBuilder<Payload> is the fluent builder used inside Derived::field_descriptors() to declare each field. See the README "Structs" section.