pub enum Pattern {
Anything,
Var(Ident),
Literal(Literal),
Unit,
Tuple(Vec<Spanned<Pattern>>),
Constructor {
module_name: ModuleName,
name: Ident,
args: Vec<Spanned<Pattern>>,
},
Record(Vec<Spanned<Ident>>),
Cons {
head: Box<Spanned<Pattern>>,
tail: Box<Spanned<Pattern>>,
},
List(Vec<Spanned<Pattern>>),
As {
pattern: Box<Spanned<Pattern>>,
name: Spanned<Ident>,
},
Parenthesized(Box<Spanned<Pattern>>),
Hex(i64),
}Expand description
A pattern in Elm source code.
Patterns appear in function arguments, case branches, let destructuring, and lambda arguments.
Variants§
Anything
Wildcard pattern: _
Var(Ident)
Variable binding: x, name
Literal(Literal)
Literal pattern: 42, "hello", 'c'
Unit
Unit pattern: ()
Tuple(Vec<Spanned<Pattern>>)
Tuple pattern: ( a, b ) or ( a, b, c )
Constructor
Constructor pattern, possibly qualified: Just x, Maybe.Nothing
Record(Vec<Spanned<Ident>>)
Record destructuring pattern: { name, age }
Cons
Cons pattern: x :: xs
List(Vec<Spanned<Pattern>>)
List pattern: [ x, y, z ]
As
As pattern: _ as name, (x, y) as point
Parenthesized(Box<Spanned<Pattern>>)
Parenthesized pattern: ( pattern )
Hex(i64)
Hex literal pattern: 0xFF
Trait Implementations§
impl Eq for Pattern
impl StructuralPartialEq for Pattern
Auto Trait Implementations§
impl Freeze for Pattern
impl RefUnwindSafe for Pattern
impl Send for Pattern
impl Sync for Pattern
impl Unpin for Pattern
impl UnsafeUnpin for Pattern
impl UnwindSafe for Pattern
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