Skip to main content

Module builder

Module builder 

Source
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§

AliasBuilder
Builder fuer Alias/Typedef.
ArrayBuilder
Builder fuer T[D1, D2, ...].
BitmaskBuilder
Builder fuer bitmask-Typen.
BitsetBuilder
Builder fuer bitset-Typen.
EnumBuilder
Builder fuer Enumerated-Typen.
MapBuilder
Builder fuer map<K, V, N>.
SequenceBuilder
Builder fuer sequence<T, N>.
StructBuilder
Builder fuer Struct-Typen.
StructMemberBuilder
Fluent-Builder fuer Member-Attribute.
StructMemberSpec
Innerer State eines Struct-Members — via StructMemberBuilder gesetzt.
TypeObjectBuilder
Einstiegspunkt.
UnionBuilder
Builder fuer Union-Typen.

Enums§

BuilderError
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.