Enum syn::Pat[][src]

pub enum Pat {
Show variants Box(PatBox), Ident(PatIdent), Lit(PatLit), Macro(PatMacro), Or(PatOr), Path(PatPath), Range(PatRange), Reference(PatReference), Rest(PatRest), Slice(PatSlice), Struct(PatStruct), Tuple(PatTuple), TupleStruct(PatTupleStruct), Type(PatType), Verbatim(TokenStream), Wild(PatWild), // some variants omitted
}
This is supported on crate feature full only.

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

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

Syntax tree enum

This type is a syntax tree enum.

Variants

Box(PatBox)

A box pattern: box v.

Ident(PatIdent)

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

Lit(PatLit)

A literal pattern: 0.

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

Macro(PatMacro)

A macro in pattern position.

Or(PatOr)

A pattern that matches any one of a set of cases.

Path(PatPath)

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

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

Range(PatRange)

A range pattern: 1..=2.

Reference(PatReference)

A reference pattern: &mut var.

Rest(PatRest)

The dots in a tuple or slice pattern: [0, 1, ..]

Slice(PatSlice)

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

Struct(PatStruct)

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

Tuple(PatTuple)

A tuple pattern: (a, b).

TupleStruct(PatTupleStruct)

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

Type(PatType)

A type ascription pattern: foo: f64.

Verbatim(TokenStream)

Tokens in pattern position not interpreted by Syn.

Wild(PatWild)

A pattern that matches any value: _.

Trait Implementations

impl Clone for Pat[src]

This is supported on crate feature clone-impls only.

impl Debug for Pat[src]

This is supported on crate feature extra-traits only.

impl Eq for Pat[src]

This is supported on crate feature extra-traits only.

impl From<PatBox> for Pat[src]

impl From<PatIdent> for Pat[src]

impl From<PatLit> for Pat[src]

impl From<PatMacro> for Pat[src]

impl From<PatOr> for Pat[src]

impl From<PatPath> for Pat[src]

impl From<PatRange> for Pat[src]

impl From<PatReference> for Pat[src]

impl From<PatRest> for Pat[src]

impl From<PatSlice> for Pat[src]

impl From<PatStruct> for Pat[src]

impl From<PatTuple> for Pat[src]

impl From<PatTupleStruct> for Pat[src]

impl From<PatType> for Pat[src]

impl From<PatWild> for Pat[src]

impl Hash for Pat[src]

This is supported on crate feature extra-traits only.

impl Parse for Pat[src]

This is supported on crate feature parsing only.

impl PartialEq<Pat> for Pat[src]

This is supported on crate feature extra-traits only.

impl ToTokens for Pat[src]

This is supported on crate feature printing only.

Auto Trait Implementations

impl RefUnwindSafe for Pat

impl !Send for Pat

impl !Sync for Pat

impl Unpin for Pat

impl UnwindSafe for Pat

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Spanned for T where
    T: Spanned + ?Sized
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.