Enum syntax::ast::TyKind  [−][src]
pub enum TyKind {
    Slice(P<Ty>),
    Array(P<Ty>, AnonConst),
    Ptr(MutTy),
    Rptr(Option<Lifetime>, MutTy),
    BareFn(P<BareFnTy>),
    Never,
    Tup(Vec<P<Ty>>),
    Path(Option<QSelf>, Path),
    TraitObject(TyParamBounds, TraitObjectSyntax),
    ImplTrait(TyParamBounds),
    Paren(P<Ty>),
    Typeof(AnonConst),
    Infer,
    ImplicitSelf,
    Mac(Mac),
    Err,
}The different kinds of types recognized by the compiler
Variants
Slice(P<Ty>)A variable-length slice ([T])
Array(P<Ty>, AnonConst)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)
NeverThe never type (!)
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
TraitObject(TyParamBounds, TraitObjectSyntax)A trait object type Bound1 + Bound2 + Bound3
where Bound is a trait or a lifetime.
ImplTrait(TyParamBounds)An impl Bound1 + Bound2 + Bound3 type
where Bound is a trait or a lifetime.
Paren(P<Ty>)No-op; kept solely so that we can pretty-print faithfully
Typeof(AnonConst)Unused for now
InferTyKind::Infer means the type should be inferred instead of it having been specified. This can appear anywhere in a type.
ImplicitSelfInferred type of a self or &self argument in a method.
Mac(Mac)ErrPlaceholder for a kind that has failed to be defined.
Trait Implementations
impl Clone for TyKind[src] 
impl Clone for TyKindfn clone(&self) -> TyKind[src] 
fn clone(&self) -> TyKindReturns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)1.0.0[src] 
fn clone_from(&mut self, source: &Self)Performs copy-assignment from source. Read more
impl PartialEq for TyKind[src] 
impl PartialEq for TyKindfn eq(&self, other: &TyKind) -> bool[src] 
fn eq(&self, other: &TyKind) -> boolThis method tests for self and other values to be equal, and is used by ==. Read more
fn ne(&self, other: &TyKind) -> bool[src] 
fn ne(&self, other: &TyKind) -> boolThis method tests for !=.
impl Eq for TyKind[src] 
impl Eq for TyKindimpl Encodable for TyKind[src] 
impl Encodable for TyKindimpl Decodable for TyKind[src] 
impl Decodable for TyKindimpl Hash for TyKind[src] 
impl Hash for TyKindfn hash<__H: Hasher>(&self, state: &mut __H)[src] 
fn hash<__H: Hasher>(&self, state: &mut __H)Feeds this value into the given [Hasher]. Read more
fn hash_slice<H>(data: &[Self], state: &mut H) where
    H: Hasher, 1.3.0[src] 
fn hash_slice<H>(data: &[Self], state: &mut H) where
    H: Hasher, Feeds a slice of this type into the given [Hasher]. Read more
impl Debug for TyKind[src] 
impl Debug for TyKind