#[non_exhaustive]pub enum TypeDef {
Message(MessageDef),
Enum(EnumDef),
Flags(FlagsDef),
Union(UnionDef),
Newtype(NewtypeDef),
Config(ConfigDef),
}Expand description
A type definition in the Vexil IR.
Each variant corresponds to one of the six declaration forms in the
Vexil language. Marked #[non_exhaustive] to allow future expansion.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Message(MessageDef)
A message with ordered, typed fields.
Enum(EnumDef)
A closed or open enumeration.
Flags(FlagsDef)
A bitmask / flag set.
Union(UnionDef)
A tagged union (sum type).
Newtype(NewtypeDef)
A newtype wrapper around another type.
Config(ConfigDef)
A compile-time configuration record (not encoded on the wire).
Trait Implementations§
Auto Trait Implementations§
impl Freeze for TypeDef
impl RefUnwindSafe for TypeDef
impl Send for TypeDef
impl Sync for TypeDef
impl Unpin for TypeDef
impl UnsafeUnpin for TypeDef
impl UnwindSafe for TypeDef
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more