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

TypedMapCell<T> and heterogeneous MapCell with their descriptors. More...

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

Go to the source code of this file.

Classes

class  parcel::TypedMapCellTypeDescriptor< T >
 Descriptor for TypedMapCell<T>. More...
 
class  parcel::TypedMapCell< T >
 Homogeneous string-keyed map of values of type T. More...
 
class  parcel::MapCell
 Heterogeneous string-keyed map of cell_t — wire kind "m". More...
 
class  parcel::MapCellTypeDescriptor
 Descriptor for the heterogeneous MapCell. More...
 

Detailed Description

TypedMapCell<T> and heterogeneous MapCell with their descriptors.

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