pub enum SchemaTypeBody {
Show 38 variants
RefType(i32),
BoolType,
S8Type(Option<NumericRestrictions>),
S16Type(Option<NumericRestrictions>),
S32Type(Option<NumericRestrictions>),
S64Type(Option<NumericRestrictions>),
U8Type(Option<NumericRestrictions>),
U16Type(Option<NumericRestrictions>),
U32Type(Option<NumericRestrictions>),
U64Type(Option<NumericRestrictions>),
F32Type(Option<NumericRestrictions>),
F64Type(Option<NumericRestrictions>),
CharType,
StringType,
RecordType(Vec<NamedFieldType>),
VariantType(Vec<VariantCaseType>),
EnumType(Vec<String>),
FlagsType(Vec<String>),
TupleType(Vec<i32>),
ListType(i32),
FixedListType(FixedListSpec),
MapType(MapSpec),
OptionType(i32),
ResultType(ResultSpec),
TextType(TextRestrictions),
BinaryType(BinaryRestrictions),
PathType(PathSpec),
UrlType(UrlRestrictions),
UuidType,
DatetimeType,
DurationType,
QuantityType(QuantitySpec),
UnionType(UnionSpec),
SecretType(SecretSpec),
QuotaTokenType(QuotaTokenSpec),
PermissionCardType(PermissionCardSpec),
FutureType(Option<i32>),
StreamType(Option<i32>),
}Expand description
The structural body of a schema-type-node.
Closed sum types come in two shapes that differ by how the decoder learns which branch a value belongs to:
-
variant-typeis a carried-tag sum: the value explicitly carries its case (variant-value.caseindex). Zero-inference decoding. Natural mapping for language-level algebraic data types (Rustenum, Scalasealed trait, WITvariant, etc.). -
union-typeis an inferred-tag sum: the value does not carry its tag. Each branch declares adiscriminator-rule(prefix / suffix / contains / regex on string-shaped bodies, or field-equals / field-absent on record-shaped bodies) and the decoder picks the branch whose rule matches the raw value. Natural mapping for inputs where the producer writes an unadorned value (a URL whose scheme picks the handler, a JSON object whose"kind"field picks the variant, an MCP content block whose"type"field picks the part shape, …).
Variants§
RefType(i32)
— Reference to a named definition in the same schema-graph —
BoolType
— Primitives —
S8Type(Option<NumericRestrictions>)
S16Type(Option<NumericRestrictions>)
S32Type(Option<NumericRestrictions>)
S64Type(Option<NumericRestrictions>)
U8Type(Option<NumericRestrictions>)
U16Type(Option<NumericRestrictions>)
U32Type(Option<NumericRestrictions>)
U64Type(Option<NumericRestrictions>)
F32Type(Option<NumericRestrictions>)
F64Type(Option<NumericRestrictions>)
CharType
StringType
RecordType(Vec<NamedFieldType>)
— Structural composites —
VariantType(Vec<VariantCaseType>)
EnumType(Vec<String>)
FlagsType(Vec<String>)
TupleType(Vec<i32>)
ListType(i32)
FixedListType(FixedListSpec)
MapType(MapSpec)
OptionType(i32)
ResultType(ResultSpec)
TextType(TextRestrictions)
— Rich semantic types —
BinaryType(BinaryRestrictions)
PathType(PathSpec)
UrlType(UrlRestrictions)
UuidType
DatetimeType
DurationType
QuantityType(QuantitySpec)
UnionType(UnionSpec)
— Discriminated union (closed, inferred-tag) —
SecretType(SecretSpec)
— Capability nodes —
QuotaTokenType(QuotaTokenSpec)
PermissionCardType(PermissionCardSpec)
FutureType(Option<i32>)
— WASI P3 stubs (parseable only; no semantics yet) —
StreamType(Option<i32>)
Trait Implementations§
Source§impl Clone for SchemaTypeBody
impl Clone for SchemaTypeBody
Source§fn clone(&self) -> SchemaTypeBody
fn clone(&self) -> SchemaTypeBody
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more