|
parcel 0.2.2
Wrappable, wire-transferable C++23 value system with JSON serialization
|
PrimitiveCell<T> plus the per-storage PrimitiveTraits<T> specializations.
More...
#include <parcel/cell.h>#include <parcel/common.h>#include <parcel/descriptor.h>#include <commons/types.hpp>#include <algorithm>#include <complex>#include <memory>#include <string>#include <string_view>#include <type_traits>#include <utility>

Go to the source code of this file.
Concepts | |
| concept | parcel::PrimitiveStorage |
Concept naming the set of types PrimitiveCell accepts as storage. | |
Typedefs | |
| using | parcel::CharCell = PrimitiveCell< char > |
PrimitiveCell<char>. | |
| using | parcel::BoolCell = PrimitiveCell< bool > |
PrimitiveCell<bool>. | |
| using | parcel::U8Cell = PrimitiveCell< comms::u8 > |
PrimitiveCell<comms::u8>. | |
| using | parcel::U16Cell = PrimitiveCell< comms::u16 > |
PrimitiveCell<comms::u16>. | |
| using | parcel::U32Cell = PrimitiveCell< comms::u32 > |
PrimitiveCell<comms::u32>. | |
| using | parcel::U64Cell = PrimitiveCell< comms::u64 > |
PrimitiveCell<comms::u64>. | |
| using | parcel::I8Cell = PrimitiveCell< comms::i8 > |
PrimitiveCell<comms::i8>. | |
| using | parcel::I16Cell = PrimitiveCell< comms::i16 > |
PrimitiveCell<comms::i16>. | |
| using | parcel::I32Cell = PrimitiveCell< comms::i32 > |
PrimitiveCell<comms::i32>. | |
| using | parcel::I64Cell = PrimitiveCell< comms::i64 > |
PrimitiveCell<comms::i64>. | |
| using | parcel::FloatCell = PrimitiveCell< comms::f32 > |
PrimitiveCell<comms::f32>. | |
| using | parcel::DoubleCell = PrimitiveCell< comms::f64 > |
PrimitiveCell<comms::f64>. | |
| using | parcel::Cs8Cell = PrimitiveCell< comms::cs8 > |
PrimitiveCell<comms::cs8>. | |
| using | parcel::Cs16Cell = PrimitiveCell< comms::cs16 > |
PrimitiveCell<comms::cs16>. | |
| using | parcel::Cs32Cell = PrimitiveCell< comms::cs32 > |
PrimitiveCell<comms::cs32>. | |
| using | parcel::Cs64Cell = PrimitiveCell< comms::cs64 > |
PrimitiveCell<comms::cs64>. | |
| using | parcel::Cu8Cell = PrimitiveCell< comms::cu8 > |
PrimitiveCell<comms::cu8>. | |
| using | parcel::Cu16Cell = PrimitiveCell< comms::cu16 > |
PrimitiveCell<comms::cu16>. | |
| using | parcel::Cu32Cell = PrimitiveCell< comms::cu32 > |
PrimitiveCell<comms::cu32>. | |
| using | parcel::Cu64Cell = PrimitiveCell< comms::cu64 > |
PrimitiveCell<comms::cu64>. | |
| using | parcel::Cf32Cell = PrimitiveCell< comms::cf32 > |
PrimitiveCell<comms::cf32>. | |
| using | parcel::Cf64Cell = PrimitiveCell< comms::cf64 > |
PrimitiveCell<comms::cf64>. | |
| using | parcel::StringCell = PrimitiveCell< std::string > |
PrimitiveCell<std::string>. | |
| using | parcel::U128Cell = PrimitiveCell< comms::u128 > |
PrimitiveCell<comms::u128> — value rendered as a decimal string. | |
| using | parcel::I128Cell = PrimitiveCell< comms::i128 > |
PrimitiveCell<comms::i128> — value rendered as a decimal string. | |
PrimitiveCell<T> plus the per-storage PrimitiveTraits<T> specializations.
Defines the leaf cell type for scalar values: bool, char, the commons fixed-width integers (comms::u8-comms::u64, comms::i8-comms::i64, plus comms::u128 / comms::i128 when supported), the floats (comms::f32 / comms::f64), the complex numbers (comms::cs8-comms::cu64, comms::cf32 / comms::cf64), and std::string. Each specialization of PrimitiveTraits<T> carries the wire kind id (e.g. "i32", "cf64", "string") and a default human-readable name + description used by the cell's descriptor.
The numeric storage types come from <commons/types.hpp>; complex numbers travel on the wire as a [real, imaginary] array via commons' nlohmann::adl_serializer<std::complex<T>>.