Enum Pat

Source
pub enum Pat {
Show 13 variants Wild(PatWild), Ident(PatIdent), Struct(PatStruct), TupleStruct(PatTupleStruct), Path(PatPath), Tuple(PatTuple), Box(PatBox), Ref(PatRef), Lit(PatLit), Range(PatRange), Slice(PatSlice), Macro(PatMacro), Verbatim(PatVerbatim),
}
Expand description

A pattern in a local binding, function signature, match expression, or various other places.

This type is available if Syn is built with the "full" feature.

§Syntax tree enum

This type is a syntax tree enum.

Variants§

§

Wild(PatWild)

A pattern that matches any value: _.

This type is available if Syn is built with the "full" feature.

§

Ident(PatIdent)

A pattern that binds a new variable: ref mut binding @ SUBPATTERN.

This type is available if Syn is built with the "full" feature.

§

Struct(PatStruct)

A struct or struct variant pattern: Variant { x, y, .. }.

This type is available if Syn is built with the "full" feature.

§

TupleStruct(PatTupleStruct)

A tuple struct or tuple variant pattern: Variant(x, y, .., z).

This type is available if Syn is built with the "full" feature.

§

Path(PatPath)

A path pattern like Color::Red, optionally qualified with a self-type.

Unquailfied path patterns can legally refer to variants, structs, constants or associated constants. Quailfied path patterns like <A>::B::C and <A as Trait>::B::C can only legally refer to associated constants.

This type is available if Syn is built with the "full" feature.

§

Tuple(PatTuple)

A tuple pattern: (a, b).

This type is available if Syn is built with the "full" feature.

§

Box(PatBox)

A box pattern: box v.

This type is available if Syn is built with the "full" feature.

§

Ref(PatRef)

A reference pattern: &mut (first, second).

This type is available if Syn is built with the "full" feature.

§

Lit(PatLit)

A literal pattern: 0.

This holds an Expr rather than a Lit because negative numbers are represented as an Expr::Unary.

This type is available if Syn is built with the "full" feature.

§

Range(PatRange)

A range pattern: 1..=2.

This type is available if Syn is built with the "full" feature.

§

Slice(PatSlice)

A dynamically sized slice pattern: [a, b, i.., y, z].

This type is available if Syn is built with the "full" feature.

§

Macro(PatMacro)

A macro in expression position.

This type is available if Syn is built with the "full" feature.

§

Verbatim(PatVerbatim)

Tokens in pattern position not interpreted by Syn.

This type is available if Syn is built with the "full" feature.

Trait Implementations§

Source§

impl Clone for Pat

Source§

fn clone(&self) -> Pat

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Pat

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl From<Pat> for FnArg

Source§

fn from(e: Pat) -> FnArg

Converts to this type from the input type.
Source§

impl From<PatBox> for Pat

Source§

fn from(e: PatBox) -> Pat

Converts to this type from the input type.
Source§

impl From<PatIdent> for Pat

Source§

fn from(e: PatIdent) -> Pat

Converts to this type from the input type.
Source§

impl From<PatLit> for Pat

Source§

fn from(e: PatLit) -> Pat

Converts to this type from the input type.
Source§

impl From<PatMacro> for Pat

Source§

fn from(e: PatMacro) -> Pat

Converts to this type from the input type.
Source§

impl From<PatPath> for Pat

Source§

fn from(e: PatPath) -> Pat

Converts to this type from the input type.
Source§

impl From<PatRange> for Pat

Source§

fn from(e: PatRange) -> Pat

Converts to this type from the input type.
Source§

impl From<PatRef> for Pat

Source§

fn from(e: PatRef) -> Pat

Converts to this type from the input type.
Source§

impl From<PatSlice> for Pat

Source§

fn from(e: PatSlice) -> Pat

Converts to this type from the input type.
Source§

impl From<PatStruct> for Pat

Source§

fn from(e: PatStruct) -> Pat

Converts to this type from the input type.
Source§

impl From<PatTuple> for Pat

Source§

fn from(e: PatTuple) -> Pat

Converts to this type from the input type.
Source§

impl From<PatTupleStruct> for Pat

Source§

fn from(e: PatTupleStruct) -> Pat

Converts to this type from the input type.
Source§

impl From<PatVerbatim> for Pat

Source§

fn from(e: PatVerbatim) -> Pat

Converts to this type from the input type.
Source§

impl From<PatWild> for Pat

Source§

fn from(e: PatWild) -> Pat

Converts to this type from the input type.
Source§

impl Hash for Pat

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for Pat

Source§

fn eq(&self, other: &Pat) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Synom for Pat

Source§

fn parse(i: Cursor<'_>) -> PResult<'_, Self>

Source§

fn description() -> Option<&'static str>

Source§

impl ToTokens for Pat

Source§

fn to_tokens(&self, tokens: &mut Tokens)

Write self to the given Tokens. Read more
Source§

fn into_tokens(self) -> Tokens
where Self: Sized,

Convert self directly into a Tokens object. Read more
Source§

impl Eq for Pat

Source§

impl StructuralPartialEq for Pat

Auto Trait Implementations§

§

impl Freeze for Pat

§

impl RefUnwindSafe for Pat

§

impl !Send for Pat

§

impl !Sync for Pat

§

impl Unpin for Pat

§

impl UnwindSafe for Pat

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Spanned for T
where T: ToTokens,

Source§

fn span(&self) -> Span

Returns a Span covering the complete contents of this syntax tree node, or Span::call_site() if this node is empty.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.