pub enum Pat {
Show 16 variants
Wildcard(Span),
Var(Ident, Span),
Lit(Lit, Span),
Con(Ident, Vec<Pat>, Span),
QualCon(ModuleName, Ident, Vec<Pat>, Span),
Infix(Box<Pat>, Ident, Box<Pat>, Span),
Tuple(Vec<Pat>, Span),
List(Vec<Pat>, Span),
Record(Ident, Vec<FieldPat>, bool, Span),
QualRecord(ModuleName, Ident, Vec<FieldPat>, bool, Span),
As(Ident, Box<Pat>, Span),
Lazy(Box<Pat>, Span),
Bang(Box<Pat>, Span),
Paren(Box<Pat>, Span),
Ann(Box<Pat>, Type, Span),
View(Box<Expr>, Box<Pat>, Span),
}Expand description
A pattern.
Variants§
Wildcard(Span)
Wildcard: _
Var(Ident, Span)
Variable: x
Lit(Lit, Span)
Literal: 42
Con(Ident, Vec<Pat>, Span)
Constructor: Just x
QualCon(ModuleName, Ident, Vec<Pat>, Span)
Qualified constructor: M.Just x, Data.Maybe.Nothing
Infix(Box<Pat>, Ident, Box<Pat>, Span)
Infix constructor: x : xs
Tuple(Vec<Pat>, Span)
Tuple: (a, b)
List(Vec<Pat>, Span)
List: [a, b, c]
Record(Ident, Vec<FieldPat>, bool, Span)
Record: Foo { bar = x } or Foo { bar = x, .. } (RecordWildCards)
QualRecord(ModuleName, Ident, Vec<FieldPat>, bool, Span)
Qualified record: M.Foo { bar = x } or M.Foo { .. } (RecordWildCards)
As(Ident, Box<Pat>, Span)
As-pattern: xs@(x:_)
Lazy(Box<Pat>, Span)
Lazy pattern: ~pat
Bang(Box<Pat>, Span)
Bang pattern: !pat
Paren(Box<Pat>, Span)
Parenthesized pattern
Ann(Box<Pat>, Type, Span)
Type annotation: x :: Int
View(Box<Expr>, Box<Pat>, Span)
View pattern: (expr -> pat) (ViewPatterns extension)
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Pat
impl RefUnwindSafe for Pat
impl Send for Pat
impl Sync for Pat
impl Unpin for Pat
impl UnsafeUnpin for Pat
impl UnwindSafe for Pat
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