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

TypedListCell<T> and heterogeneous ListCell with their descriptors. More...

#include <parcel/cell.h>
#include <parcel/descriptor.h>
#include <parcel/registry.h>
#include <initializer_list>
#include <memory>
#include <ranges>
#include <span>
#include <stdexcept>
#include <string>
#include <string_view>
#include <utility>
#include <vector>
Include dependency graph for list.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  parcel::TypedListCellTypeDescriptor< T >
 Descriptor for TypedListCell<T>. More...
 
class  parcel::TypedListCell< T >
 Homogeneous list of element cells of type T. More...
 
class  parcel::ListCell
 Heterogeneous list of cell_t — wire kind "l". More...
 
class  parcel::ListCellTypeDescriptor
 Descriptor for the heterogeneous ListCell. More...
 

Detailed Description

TypedListCell<T> and heterogeneous ListCell with their descriptors.

Two list flavors share this header. TypedListCell<T> carries a compile-time element kind, encoded in its kind id (e.g. "l:i32") and stored as std::vector<typename T::storage_t> so element values are raw — no per-cell wrapping. ListCell holds std::vector<cell_t> for heterogeneous values and dispatches each element through the registry. See the README "Lists and maps" section.