Enum syntax::ast::Pat_Unstable [-] [+] [src]

pub enum Pat_ {
    PatWild(PatWildKind),
    PatIdent(BindingMode, SpannedIdent, Option<P<Pat>>),
    PatEnum(Path, Option<Vec<P<Pat>>>),
    PatStruct(Path, Vec<Spanned<FieldPat>>, bool),
    PatTup(Vec<P<Pat>>),
    PatBox(P<Pat>),
    PatRegion(P<Pat>, Mutability),
    PatLit(P<Expr>),
    PatRange(P<Expr>, P<Expr>),
    PatVec(Vec<P<Pat>>, Option<P<Pat>>, Vec<P<Pat>>),
    PatMac(Mac),
}

Variants

PatWild

Represents a wildcard pattern (either _ or ..)

PatIdent

A PatIdent may either be a new bound variable, or a nullary enum (in which case the third field is None). In the nullary enum case, the parser can't determine which it is. The resolver determines this, and records this pattern's NodeId in an auxiliary set (of "PatIdents that refer to nullary enums")

PatEnum

"None" means a * pattern where we don't bind the fields to names.

PatStruct
PatTup
PatBox
PatRegion
PatLit
PatRange
PatVec

[a, b, ..i, y, z] is represented as: PatVec(box [a, b], Some(i), box [y, z])

PatMac

Trait Implementations

Derived Implementations

impl Debug for Pat_

fn fmt(&self, __arg_0: &mut Formatter) -> Result

impl Hash for Pat_

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

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

impl Decodable for Pat_

fn decode<__D: Decoder>(__arg_0: &mut __D) -> Result<Pat_, Error>

impl Encodable for Pat_

fn encode<__S: Encoder>(&self, __arg_0: &mut __S) -> Result<(), Error>

impl Eq for Pat_

fn assert_receiver_is_total_eq(&self)

impl PartialEq for Pat_

fn eq(&self, __arg_0: &Pat_) -> bool

fn ne(&self, __arg_0: &Pat_) -> bool

impl Clone for Pat_

fn clone(&self) -> Pat_

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