#[non_exhaustive]pub enum ParseEventKind<'de> {
StructStart(ContainerKind),
StructEnd,
FieldKey(FieldKey<'de>),
OrderedField,
SequenceStart(ContainerKind),
SequenceEnd,
Scalar(ScalarValue<'de>),
OptionSome,
VariantTag(Option<&'de str>),
}Expand description
The kind of parse event.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
StructStart(ContainerKind)
Beginning of a struct/object/node.
StructEnd
End of a struct/object/node.
FieldKey(FieldKey<'de>)
Encountered a field key (for self-describing formats like JSON/YAML).
OrderedField
Next field value in struct field order (for non-self-describing formats like postcard).
The driver tracks the current field index and uses the schema to determine which field this value belongs to. This allows formats without field names in the wire format to still support Tier-0 deserialization.
SequenceStart(ContainerKind)
Beginning of a sequence/array/tuple.
SequenceEnd
End of a sequence/array/tuple.
Scalar(ScalarValue<'de>)
Scalar literal.
OptionSome
Explicit marker that an option layer is present.
The following event represents the value inside Some(...). This lets
formats distinguish an outer Some(None) from a plain None when
deserializing nested options.
VariantTag(Option<&'de str>)
Tagged value from a self-describing format with native tagged union syntax.
This is used by formats like Styx that have explicit tag syntax (e.g., @tag(value)).
Most formats (JSON, TOML, etc.) don’t need this - they represent enums as
{"variant_name": value} which goes through the struct/field path instead.
None represents a unit tag (bare @ in Styx) with no name.
Implementations§
Trait Implementations§
Source§impl<'de> Clone for ParseEventKind<'de>
impl<'de> Clone for ParseEventKind<'de>
Source§fn clone(&self) -> ParseEventKind<'de>
fn clone(&self) -> ParseEventKind<'de>
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more