#[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)
A fixed size array type: [T; n]
.
BareFn(TypeBareFn)
A bare function type: fn(usize) -> bool
.
Group(TypeGroup)
A type contained within invisible delimiters.
ImplTrait(TypeImplTrait)
An impl Bound1 + Bound2 + Bound3
type where Bound
is a trait or
a lifetime.
Infer(TypeInfer)
Indication that a type should be inferred by the compiler: _
.
Macro(TypeMacro)
A macro in the type position.
Never(TypeNever)
The never type: !
.
Paren(TypeParen)
A parenthesized type equivalent to the inner type.
Path(TypePath)
A path like std::slice::Iter
, optionally qualified with a
self-type as in <Vec<T> as SomeTrait>::Associated
.
Ptr(TypePtr)
A raw pointer type: *const T
or *mut T
.
Reference(TypeReference)
A reference type: &'a T
or &'a mut T
.
Slice(TypeSlice)
A dynamically sized slice type: [T]
.
TraitObject(TypeTraitObject)
A trait object type dyn Bound1 + Bound2 + Bound3
where Bound
is a
trait or a lifetime.
Tuple(TypeTuple)
A tuple type: (A, B, C, String)
.
Verbatim(TokenStream)
Tokens in type position not interpreted by Syn.
Implementations
sourceimpl Type
impl Type
sourcepub fn without_plus(input: ParseStream<'_>) -> Result<Self>
pub fn without_plus(input: ParseStream<'_>) -> Result<Self>
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
sourceimpl From<TypeBareFn> for Type
impl From<TypeBareFn> for Type
sourcefn from(e: TypeBareFn) -> Type
fn from(e: TypeBareFn) -> Type
sourceimpl From<TypeImplTrait> for Type
impl From<TypeImplTrait> for Type
sourcefn from(e: TypeImplTrait) -> Type
fn from(e: TypeImplTrait) -> Type
sourceimpl From<TypeReference> for Type
impl From<TypeReference> for Type
sourcefn from(e: TypeReference) -> Type
fn from(e: TypeReference) -> Type
sourceimpl From<TypeTraitObject> for Type
impl From<TypeTraitObject> for Type
sourcefn from(e: TypeTraitObject) -> Type
fn from(e: TypeTraitObject) -> Type
sourceimpl ToTokens for Type
impl ToTokens for Type
sourcefn to_tokens(&self, tokens: &mut TokenStream)
fn to_tokens(&self, tokens: &mut TokenStream)
sourcefn to_token_stream(&self) -> TokenStream
fn to_token_stream(&self) -> TokenStream
sourcefn into_token_stream(self) -> TokenStream
fn into_token_stream(self) -> TokenStream
impl Eq for Type
Auto Trait Implementations
impl RefUnwindSafe for Type
impl !Send for Type
impl !Sync for Type
impl Unpin for Type
impl UnwindSafe for Type
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
sourceimpl<T> Spanned for Twhere
T: Spanned + ?Sized,
impl<T> Spanned for Twhere
T: Spanned + ?Sized,
sourcefn span(&self) -> Span
fn span(&self) -> Span
Span
covering the complete contents of this syntax tree
node, or Span::call_site()
if this node is empty. Read more