Enum syn::Type [−][src]
#[non_exhaustive]
pub enum Type {
Show 15 variants
Array(TypeArray),
BareFn(TypeBareFn),
Group(TypeGroup),
ImplTrait(TypeImplTrait),
Infer(TypeInfer),
Macro(TypeMacro),
Never(TypeNever),
Paren(TypeParen),
Path(TypePath),
Ptr(TypePtr),
Reference(TypeReference),
Slice(TypeSlice),
TraitObject(TypeTraitObject),
Tuple(TypeTuple),
Verbatim(TokenStream),
}
Expand description
The possible types that a Rust value could have.
This type is available only if Syn is built with the "derive"
or "full"
feature.
Syntax tree enum
This type is a syntax tree enum.
Variants (Non-exhaustive)
This enum is marked as non-exhaustive
Array(TypeArray)
Tuple Fields
0: TypeArray
A fixed size array type: [T; n]
.
BareFn(TypeBareFn)
Tuple Fields
0: TypeBareFn
A bare function type: fn(usize) -> bool
.
Group(TypeGroup)
Tuple Fields
0: TypeGroup
A type contained within invisible delimiters.
ImplTrait(TypeImplTrait)
Tuple Fields
An impl Bound1 + Bound2 + Bound3
type where Bound
is a trait or
a lifetime.
Infer(TypeInfer)
Tuple Fields
0: TypeInfer
Indication that a type should be inferred by the compiler: _
.
Macro(TypeMacro)
Tuple Fields
0: TypeMacro
A macro in the type position.
Never(TypeNever)
Tuple Fields
0: TypeNever
The never type: !
.
Paren(TypeParen)
Tuple Fields
0: TypeParen
A parenthesized type equivalent to the inner type.
Path(TypePath)
Tuple Fields
0: TypePath
A path like std::slice::Iter
, optionally qualified with a
self-type as in <Vec<T> as SomeTrait>::Associated
.
Ptr(TypePtr)
Tuple Fields
0: TypePtr
A raw pointer type: *const T
or *mut T
.
Reference(TypeReference)
Tuple Fields
A reference type: &'a T
or &'a mut T
.
Slice(TypeSlice)
Tuple Fields
0: TypeSlice
A dynamically sized slice type: [T]
.
TraitObject(TypeTraitObject)
Tuple Fields
A trait object type Bound1 + Bound2 + Bound3
where Bound
is a
trait or a lifetime.
Tuple(TypeTuple)
Tuple Fields
0: TypeTuple
A tuple type: (A, B, C, String)
.
Verbatim(TokenStream)
Tuple Fields
0: TokenStream
Tokens in type position not interpreted by Syn.
Implementations
In some positions, types may not contain the +
character, to
disambiguate them. For example in the expression 1 as T
, T may not
contain a +
character.
This parser does not allow a +
, while the default parser does.
Trait Implementations
Performs the conversion.
Performs the conversion.
Performs the conversion.
Performs the conversion.
Auto Trait Implementations
impl RefUnwindSafe for Type
impl UnwindSafe for Type
Blanket Implementations
Mutably borrows from an owned value. Read more