Enum syntex_syntax::ast::TyKind [] [src]

pub enum TyKind {
    Vec(P<Ty>),
    FixedLengthVec(P<Ty>, P<Expr>),
    Ptr(MutTy),
    Rptr(Option<Lifetime>, MutTy),
    BareFn(P<BareFnTy>),
    Tup(Vec<P<Ty>>),
    Path(Option<QSelf>, Path),
    ObjectSum(P<Ty>, TyParamBounds),
    PolyTraitRef(TyParamBounds),
    Paren(P<Ty>),
    Typeof(P<Expr>),
    Infer,
    ImplicitSelf,
    Mac(Mac),
}

The different kinds of types recognized by the compiler

Variants

Vec(P<Ty>)FixedLengthVec(P<Ty>, P<Expr>)

A fixed length array ([T; n])

Ptr(MutTy)

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

Rptr(Option<Lifetime>, MutTy)

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

BareFn(P<BareFnTy>)

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

Tup(Vec<P<Ty>>)

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

Path(Option<QSelf>, Path)

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

Type parameters are stored in the Path itself

ObjectSum(P<Ty>, TyParamBounds)

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

PolyTraitRef(TyParamBounds)

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

Paren(P<Ty>)

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

Typeof(P<Expr>)

Unused for now

Infer

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

ImplicitSelf

Inferred type of a self or &self argument in a method.

Mac(Mac)

Trait Implementations

impl Debug for TyKind
[src]

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

Formats the value using the given formatter.

impl Hash for TyKind
[src]

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

Feeds this value into the state given, updating the hasher as necessary.

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

Feeds a slice of this type into the state provided.

impl Decodable for TyKind
[src]

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

impl Encodable for TyKind
[src]

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

impl Eq for TyKind
[src]

impl PartialEq for TyKind
[src]

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

This method tests for self and other values to be equal, and is used by ==. Read more

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

This method tests for !=.

impl Clone for TyKind
[src]

fn clone(&self) -> TyKind

Returns a copy of the value. Read more

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

Performs copy-assignment from source. Read more