Expand description
Programmatischer Builder fuer TypeObjects.
Ermoeglicht lesbaren Code wie:
use zerodds_types::builder::{Extensibility, TypeObjectBuilder};
use zerodds_types::{PrimitiveKind, TypeIdentifier};
let chatter = TypeObjectBuilder::struct_type("::chat::Chatter")
.extensibility(Extensibility::Appendable)
.member(
"msg_id",
TypeIdentifier::Primitive(PrimitiveKind::Int64),
|m| m.key(),
)
.member(
"text",
TypeIdentifier::String8Small { bound: 255 },
|m| m,
)
.build_complete();Scope in T5: StructBuilder, EnumBuilder, AliasBuilder — die drei am haeufigsten gebrauchten Top-Level-Typen. Union, Collections, Bitmask, Bitset, Annotation folgen on-demand.
Structs§
- Alias
Builder - Builder fuer Alias/Typedef.
- Array
Builder - Builder fuer
T[D1, D2, ...]. - Bitmask
Builder - Builder fuer
bitmask-Typen. - Bitset
Builder - Builder fuer
bitset-Typen. - Enum
Builder - Builder fuer Enumerated-Typen.
- MapBuilder
- Builder fuer
map<K, V, N>. - Sequence
Builder - Builder fuer
sequence<T, N>. - Struct
Builder - Builder fuer Struct-Typen.
- Struct
Member Builder - Fluent-Builder fuer Member-Attribute.
- Struct
Member Spec - Innerer State eines Struct-Members — via
StructMemberBuildergesetzt. - Type
Object Builder - Einstiegspunkt.
- Union
Builder - Builder fuer Union-Typen.
Enums§
- Builder
Error - Validierungs-Fehler beim Bauen von Collection-Typen.
- Extensibility
- Extensibility-Kind (§7.2.2.4). Einfachere Darstellung als die Flag-Bits: genau einer von drei Werten.