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

pub enum Ty_ {
    TyVec(P<Ty>),
    TyFixedLengthVec(P<Ty>, P<Expr>),
    TyPtr(MutTy),
    TyRptr(Option<Lifetime>, MutTy),
    TyBareFn(P<BareFnTy>),
    TyTup(Vec<P<Ty>>),
    TyPath(Option<QSelf>, Path),
    TyObjectSum(P<Ty>, TyParamBounds),
    TyPolyTraitRef(TyParamBounds),
    TyParen(P<Ty>),
    TyTypeof(P<Expr>),
    TyInfer,
}

The different kinds of types recognized by the compiler

Variants

TyVec
TyFixedLengthVec

A fixed length array ([T; n])

TyPtr

A raw pointer (*const T or *mut T)

TyRptr

A reference (&'a T or &'a mut T)

TyBareFn

A bare function (e.g. fn(usize) -> bool)

TyTup

A tuple ((A, B, C, D,...))

TyPath

A path (module::module::...::Type), optionally "qualified", e.g. <Vec<T> as SomeTrait>::SomeType.

Type parameters are stored in the Path itself

TyObjectSum

Something like A+B. Note that B must always be a path.

TyPolyTraitRef

A type like for<'a> Foo<&'a Bar>

TyParen

No-op; kept solely so that we can pretty-print faithfully

TyTypeof

Unused for now

TyInfer

TyInfer means the type should be inferred instead of it having been specified. This can appear anywhere in a type.

Trait Implementations

Derived Implementations

impl Debug for Ty_

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

impl Hash for Ty_

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

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

impl Decodable for Ty_

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

impl Encodable for Ty_

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

impl Eq for Ty_

impl PartialEq for Ty_

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

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

impl Clone for Ty_

fn clone(&self) -> Ty_

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