[−][src]Enum rustc_hir::hir::PatKind
Variants
Represents a wildcard pattern (i.e., _).
Binding(BindingAnnotation, HirId, Ident, Option<&'hir Pat<'hir>>)A fresh binding ref mut binding @ OPT_SUBPATTERN.
The HirId is the canonical ID for the variable being bound,
(e.g., in Ok(x) | Err(x), both x use the same canonical ID),
which is the pattern ID of the first x.
A struct or struct variant pattern (e.g., Variant {x, y, ..}).
The bool is true in the presence of a ...
A tuple struct/variant pattern Variant(x, y, .., z).
If the .. pattern fragment is present, then Option<usize> denotes its position.
0 <= position <= subpats.len()
An or-pattern A | B | C.
Invariant: pats.len() >= 2.
Path(QPath<'hir>)A path pattern for an unit struct/variant or a (maybe-associated) constant.
A tuple pattern (e.g., (a, b)).
If the .. pattern fragment is present, then Option<usize> denotes its position.
0 <= position <= subpats.len()
Box(&'hir Pat<'hir>)A box pattern.
Ref(&'hir Pat<'hir>, Mutability)A reference pattern (e.g., &mut (a, b)).
Lit(&'hir Expr<'hir>)A literal.
A range pattern (e.g., 1..=2 or 1..2).
A slice pattern, [before_0, ..., before_n, (slice, after_0, ..., after_n)?].
Here, slice is lowered from the syntax ($binding_mode $ident @)? ...
If slice exists, then after can be non-empty.
The representation for e.g., [a, b, .., c, d] is:
PatKind::Slice([Binding(a), Binding(b)], Some(Wild), [Binding(c), Binding(d)])
Trait Implementations
impl<'hir> Debug for PatKind<'hir>[src]
impl<'hir, __CTX> HashStable<__CTX> for PatKind<'hir> where
__CTX: HashStableContext, [src]
__CTX: HashStableContext,
pub fn hash_stable(&self, __hcx: &mut __CTX, __hasher: &mut StableHasher)[src]
Auto Trait Implementations
impl<'hir> !RefUnwindSafe for PatKind<'hir>
impl<'hir> !Send for PatKind<'hir>
impl<'hir> !Sync for PatKind<'hir>
impl<'hir> Unpin for PatKind<'hir>
impl<'hir> !UnwindSafe for PatKind<'hir>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,