pub enum PatBot {
CtorApplied {
ctor: CtorTok,
arg: Box<PatBot>,
},
Ctor(CtorTok),
Int(IntTok),
True(KwTrue),
False(KwFalse),
Str(LiteralTok),
Wild(WildcardTok),
Var(VarTok),
Unit {
paren: UnitParen,
},
Paren {
paren: ParenGroup<()>,
inner: Box<PatternParenBody>,
},
List {
plist: ListGroup<()>,
items: Vec<PatListItem>,
},
}Expand description
patbot, plus the constructor-pattern forms pattr adds in
parser.mly (folded in here to keep PatCons a plain struct).
Variants§
CtorApplied
Ctor patbot — a constructor applied to one argument pattern.
Ctor(CtorTok)
A bare (nullary) constructor pattern.
Int(IntTok)
True(KwTrue)
False(KwFalse)
Str(LiteralTok)
Wild(WildcardTok)
Var(VarTok)
Unit
()
Paren
( pat ) or ( pat, pat, … ) (the latter elaborates to a tuple
pattern).
List
[ pat; … ] (also matches []).
Trait Implementations§
Source§impl<__SyanMacro_Atom> Parse<__SyanMacro_Atom> for PatBotwhere
__SyanMacro_Atom: Spanned + Clone,
CtorTok: Parse<__SyanMacro_Atom>,
IntTok: Parse<__SyanMacro_Atom>,
KwTrue: Parse<__SyanMacro_Atom>,
KwFalse: Parse<__SyanMacro_Atom>,
LiteralTok: Parse<__SyanMacro_Atom>,
WildcardTok: Parse<__SyanMacro_Atom>,
VarTok: Parse<__SyanMacro_Atom>,
UnitParen: Parse<__SyanMacro_Atom>,
ParenGroup<()>: GroupShape<__SyanMacro_Atom>,
ListGroup<()>: GroupShape<__SyanMacro_Atom>,
Box<PatternParenBody>: Parse<__SyanMacro_Atom>,
Vec<PatListItem>: Parse<__SyanMacro_Atom>,
Self: ParseRanked8909385c15d27adc<(((),),), __SyanMacro_Atom>,
impl<__SyanMacro_Atom> Parse<__SyanMacro_Atom> for PatBotwhere
__SyanMacro_Atom: Spanned + Clone,
CtorTok: Parse<__SyanMacro_Atom>,
IntTok: Parse<__SyanMacro_Atom>,
KwTrue: Parse<__SyanMacro_Atom>,
KwFalse: Parse<__SyanMacro_Atom>,
LiteralTok: Parse<__SyanMacro_Atom>,
WildcardTok: Parse<__SyanMacro_Atom>,
VarTok: Parse<__SyanMacro_Atom>,
UnitParen: Parse<__SyanMacro_Atom>,
ParenGroup<()>: GroupShape<__SyanMacro_Atom>,
ListGroup<()>: GroupShape<__SyanMacro_Atom>,
Box<PatternParenBody>: Parse<__SyanMacro_Atom>,
Vec<PatListItem>: Parse<__SyanMacro_Atom>,
Self: ParseRanked8909385c15d27adc<(((),),), __SyanMacro_Atom>,
Source§type Error = <PatBot as ParseRanked8909385c15d27adc<(((),),), __SyanMacro_Atom>>::Error
type Error = <PatBot as ParseRanked8909385c15d27adc<(((),),), __SyanMacro_Atom>>::Error
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 PatBot
Source§impl<__SyanMacro_Atom> Unparse<__SyanMacro_Atom> for PatBotwhere
CtorTok: Unparse<__SyanMacro_Atom>,
IntTok: Unparse<__SyanMacro_Atom>,
KwTrue: Unparse<__SyanMacro_Atom>,
KwFalse: Unparse<__SyanMacro_Atom>,
LiteralTok: Unparse<__SyanMacro_Atom>,
WildcardTok: Unparse<__SyanMacro_Atom>,
VarTok: Unparse<__SyanMacro_Atom>,
UnitParen: Unparse<__SyanMacro_Atom>,
ParenGroup<()>: GroupUnparse<__SyanMacro_Atom>,
ListGroup<()>: GroupUnparse<__SyanMacro_Atom>,
Box<PatternParenBody>: Unparse<__SyanMacro_Atom>,
Vec<PatListItem>: Unparse<__SyanMacro_Atom>,
Self: UnparseRanked8909385c15d27adc<(((),),), __SyanMacro_Atom>,
impl<__SyanMacro_Atom> Unparse<__SyanMacro_Atom> for PatBotwhere
CtorTok: Unparse<__SyanMacro_Atom>,
IntTok: Unparse<__SyanMacro_Atom>,
KwTrue: Unparse<__SyanMacro_Atom>,
KwFalse: Unparse<__SyanMacro_Atom>,
LiteralTok: Unparse<__SyanMacro_Atom>,
WildcardTok: Unparse<__SyanMacro_Atom>,
VarTok: Unparse<__SyanMacro_Atom>,
UnitParen: Unparse<__SyanMacro_Atom>,
ParenGroup<()>: GroupUnparse<__SyanMacro_Atom>,
ListGroup<()>: GroupUnparse<__SyanMacro_Atom>,
Box<PatternParenBody>: Unparse<__SyanMacro_Atom>,
Vec<PatListItem>: Unparse<__SyanMacro_Atom>,
Self: UnparseRanked8909385c15d27adc<(((),),), __SyanMacro_Atom>,
Auto Trait Implementations§
impl Freeze for PatBot
impl RefUnwindSafe for PatBot
impl Send for PatBot
impl Sync for PatBot
impl Unpin for PatBot
impl UnsafeUnpin for PatBot
impl UnwindSafe for PatBot
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