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(Path, NodeId),
TyObjectSum(P<Ty>, TyParamBounds),
TyPolyTraitRef(TyParamBounds),
TyQPath(P<QPath>),
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 ) or primitive
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>
|
TyQPath | A "qualified path", e.g. <Vec<T> as SomeTrait>::SomeType
|
TyParen | No-op; kept solely so that we can pretty-print faithfully
|
TyTypeof | |
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