pub enum Pattern<'a> {
Normal(Expr<'a>),
Placeholder(Underscore<'a>),
Parenthesized(Parenthesized<'a>),
Destructuring(Destructuring<'a>),
}Expand description
The kind of a pattern.
Variants§
Normal(Expr<'a>)
A single expression: x.
Placeholder(Underscore<'a>)
A placeholder: _.
Parenthesized(Parenthesized<'a>)
A parenthesized pattern.
Destructuring(Destructuring<'a>)
A destructuring pattern: (x, _, ..y).
Implementations§
Trait Implementations§
Source§impl<'a> AstNode<'a> for Pattern<'a>
impl<'a> AstNode<'a> for Pattern<'a>
Source§fn from_untyped(node: &'a SyntaxNode) -> Option<Self>
fn from_untyped(node: &'a SyntaxNode) -> Option<Self>
Convert a node into its typed variant.
Source§fn to_untyped(self) -> &'a SyntaxNode
fn to_untyped(self) -> &'a SyntaxNode
A reference to the underlying syntax node.
Source§fn placeholder() -> Self
fn placeholder() -> Self
A placeholder for this node type. If the underlying CST has syntax
errors or did not come from the parser, the AST is not guaranteed to be
valid. But instead of panicking in that case, we return placeholder
nodes.
impl<'a> Copy for Pattern<'a>
Auto Trait Implementations§
impl<'a> Freeze for Pattern<'a>
impl<'a> RefUnwindSafe for Pattern<'a>
impl<'a> Send for Pattern<'a>
impl<'a> Sync for Pattern<'a>
impl<'a> Unpin for Pattern<'a>
impl<'a> UnsafeUnpin for Pattern<'a>
impl<'a> UnwindSafe for Pattern<'a>
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more