[][src]Enum syn::Pat

pub enum Pat {
    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
}

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]

impl Debug for Pat[src]

impl Eq for Pat[src]

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]

impl Parse for Pat[src]

impl PartialEq<Pat> for Pat[src]

impl ToTokens for Pat[src]

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.