pub enum SigItem {
ValHorzCmd {
kw: KwVal,
name: HorzCmdTok,
colon: ColonTok,
ty: TypeExpr,
constraints: Vec<SigConstraint>,
},
ValVertCmd {
kw: KwVal,
name: VertCmdTok,
colon: ColonTok,
ty: TypeExpr,
constraints: Vec<SigConstraint>,
},
Val {
kw: KwVal,
name: BindName,
colon: ColonTok,
ty: TypeExpr,
constraints: Vec<SigConstraint>,
},
DirectHorzCmd {
kw: KwDirect,
name: HorzCmdTok,
colon: ColonTok,
ty: TypeExpr,
constraints: Vec<SigConstraint>,
},
DirectVertCmd {
kw: KwDirect,
name: VertCmdTok,
colon: ColonTok,
ty: TypeExpr,
constraints: Vec<SigConstraint>,
},
Type {
kw: KwType,
tyvars: Vec<TypeVarTok>,
name: VarTok,
constraints: Vec<SigConstraint>,
},
}Expand description
One nxsigelem. Type parameters/type synonyms on type items are not
supported — such input is rejected with a parse error. Each item may
carry a trailing constrnts (parser.mly:526-530) — see
SigConstraint.
Variants§
ValHorzCmd
val \cmd : ty / val +cmd : ty.
ValVertCmd
Val
val name : ty / val ( ‹op› ) : ty.
DirectHorzCmd
direct \cmd : ty / direct +cmd : ty.
DirectVertCmd
Type
type tyvar* name (no synonym).
Trait Implementations§
Source§impl<__SyanMacro_Atom> Parse<__SyanMacro_Atom> for SigItemwhere
__SyanMacro_Atom: Spanned + Clone,
KwVal: Parse<__SyanMacro_Atom>,
HorzCmdTok: Parse<__SyanMacro_Atom>,
ColonTok: Parse<__SyanMacro_Atom>,
TypeExpr: Parse<__SyanMacro_Atom>,
Vec<SigConstraint>: Parse<__SyanMacro_Atom>,
VertCmdTok: Parse<__SyanMacro_Atom>,
BindName: Parse<__SyanMacro_Atom>,
KwDirect: Parse<__SyanMacro_Atom>,
KwType: Parse<__SyanMacro_Atom>,
Vec<TypeVarTok>: Parse<__SyanMacro_Atom>,
VarTok: Parse<__SyanMacro_Atom>,
impl<__SyanMacro_Atom> Parse<__SyanMacro_Atom> for SigItemwhere
__SyanMacro_Atom: Spanned + Clone,
KwVal: Parse<__SyanMacro_Atom>,
HorzCmdTok: Parse<__SyanMacro_Atom>,
ColonTok: Parse<__SyanMacro_Atom>,
TypeExpr: Parse<__SyanMacro_Atom>,
Vec<SigConstraint>: Parse<__SyanMacro_Atom>,
VertCmdTok: Parse<__SyanMacro_Atom>,
BindName: Parse<__SyanMacro_Atom>,
KwDirect: Parse<__SyanMacro_Atom>,
KwType: Parse<__SyanMacro_Atom>,
Vec<TypeVarTok>: Parse<__SyanMacro_Atom>,
VarTok: Parse<__SyanMacro_Atom>,
Source§type Error = ParseError<<__SyanMacro_Atom as Spanned>::Span>
type Error = ParseError<<__SyanMacro_Atom as Spanned>::Span>
Every error must be convertible to the universal one, so a field’s failure can become the
enclosing type’s failure with no per-field where-predicate. Stating it HERE rather than at
each derived impl is what keeps it out of the obligation graph: a per-field
<FieldTy as Parse<Atom>>::Error: Into<…> predicate re-creates a projection cycle on a
recursive field (E0275), which decycle’s bound-peeling does not break.Source§fn parse_stream<__SyanMacro_S: ParseStream<Atom = __SyanMacro_Atom>>(
__syan_stream: &mut __SyanMacro_S,
) -> Result<Self, Self::Error>
fn parse_stream<__SyanMacro_S: ParseStream<Atom = __SyanMacro_Atom>>( __syan_stream: &mut __SyanMacro_S, ) -> Result<Self, Self::Error>
Parse from a reborrowable stream. Read more
impl StructuralPartialEq for SigItem
Source§impl<__SyanMacro_Atom> Unparse<__SyanMacro_Atom> for SigItemwhere
KwVal: Unparse<__SyanMacro_Atom>,
HorzCmdTok: Unparse<__SyanMacro_Atom>,
ColonTok: Unparse<__SyanMacro_Atom>,
TypeExpr: Unparse<__SyanMacro_Atom>,
Vec<SigConstraint>: Unparse<__SyanMacro_Atom>,
VertCmdTok: Unparse<__SyanMacro_Atom>,
BindName: Unparse<__SyanMacro_Atom>,
KwDirect: Unparse<__SyanMacro_Atom>,
KwType: Unparse<__SyanMacro_Atom>,
Vec<TypeVarTok>: Unparse<__SyanMacro_Atom>,
VarTok: Unparse<__SyanMacro_Atom>,
impl<__SyanMacro_Atom> Unparse<__SyanMacro_Atom> for SigItemwhere
KwVal: Unparse<__SyanMacro_Atom>,
HorzCmdTok: Unparse<__SyanMacro_Atom>,
ColonTok: Unparse<__SyanMacro_Atom>,
TypeExpr: Unparse<__SyanMacro_Atom>,
Vec<SigConstraint>: Unparse<__SyanMacro_Atom>,
VertCmdTok: Unparse<__SyanMacro_Atom>,
BindName: Unparse<__SyanMacro_Atom>,
KwDirect: Unparse<__SyanMacro_Atom>,
KwType: Unparse<__SyanMacro_Atom>,
Vec<TypeVarTok>: Unparse<__SyanMacro_Atom>,
VarTok: Unparse<__SyanMacro_Atom>,
Auto Trait Implementations§
impl Freeze for SigItem
impl RefUnwindSafe for SigItem
impl Send for SigItem
impl Sync for SigItem
impl Unpin for SigItem
impl UnsafeUnpin for SigItem
impl UnwindSafe for SigItem
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