Enum rustc_ap_rustc_ast::ast::PatKind [−][src]
pub enum PatKind {}Show variants
Wild, Ident(BindingMode, Ident, Option<P<Pat>>), Struct(Path, Vec<PatField>, bool), TupleStruct(Path, Vec<P<Pat>>), Or(Vec<P<Pat>>), Path(Option<QSelf>, Path), Tuple(Vec<P<Pat>>), Box(P<Pat>), Ref(P<Pat>, Mutability), Lit(P<Expr>), Range(Option<P<Expr>>, Option<P<Expr>>, Spanned<RangeEnd>), Slice(Vec<P<Pat>>), Rest, Paren(P<Pat>), MacCall(MacCall),
Variants
Expand description
Represents a wildcard pattern (_
).
Ident(BindingMode, Ident, Option<P<Pat>>)
Expand description
A PatKind::Ident
may either be a new bound variable (ref mut binding @ OPT_SUBPATTERN
),
or a unit struct/variant pattern, or a const pattern (in the last two cases the third
field must be None
). Disambiguation cannot be done with parser alone, so it happens
during name resolution.
Expand description
A struct or struct variant pattern (e.g., Variant {x, y, ..}
).
The bool
is true
in the presence of a ..
.
Expand description
A tuple struct/variant pattern (Variant(x, y, .., z)
).
Expand description
An or-pattern A | B | C
.
Invariant: pats.len() >= 2
.
Expand description
A possibly qualified path pattern.
Unqualified path patterns A::B::C
can legally refer to variants, structs, constants
or associated constants. Qualified path patterns <A>::B::C
/<A as Trait>::B::C
can
only legally refer to associated constants.
Expand description
A tuple pattern ((a, b)
).
Expand description
A box
pattern.
Ref(P<Pat>, Mutability)
Expand description
A reference pattern (e.g., &mut (a, b)
).
Expand description
A literal.
Expand description
A range pattern (e.g., 1...2
, 1..=2
or 1..2
).
Expand description
A slice pattern [a, b, c]
.
Expand description
A rest pattern ..
.
Syntactically it is valid anywhere.
Semantically however, it only has meaning immediately inside:
- a slice pattern:
[a, .., b]
, - a binding pattern immediately inside a slice pattern:
[a, r @ ..]
, - a tuple pattern:
(a, .., b)
, - a tuple struct/variant pattern:
$path(a, .., b)
.
In all of these cases, an additional restriction applies, only one rest pattern may occur in the pattern sequences.
Expand description
Parentheses in patterns used for grouping (i.e., (PAT)
).
MacCall(MacCall)
Expand description
A macro pattern; pre-expansion.
Trait Implementations
Auto Trait Implementations
impl !RefUnwindSafe for PatKind
impl !Send for PatKind
impl !Sync for PatKind
impl Unpin for PatKind
impl !UnwindSafe for PatKind
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> Instrument for T
[src]
impl<T> Instrument for T
[src]fn instrument(self, span: Span) -> Instrumented<Self>
[src]
fn instrument(self, span: Span) -> Instrumented<Self>
[src]Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
fn in_current_span(self) -> Instrumented<Self>
[src]
fn in_current_span(self) -> Instrumented<Self>
[src]impl<T> Same<T> for T
impl<T> Same<T> for T
type Output = T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn to_owned(&self) -> T
[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)
[src]
pub fn clone_into(&self, target: &mut T)
[src]🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
impl<'a, T> Captures<'a> for T where
T: ?Sized,
[src]
T: ?Sized,