Enum syn::Type[][src]

pub enum Type {
Show 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), // some variants omitted
}
This is supported on crate features full or derive only.

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

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 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

impl Type[src]

pub fn without_plus(input: ParseStream<'_>) -> Result<Self>[src]

This is supported on crate feature parsing only.

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

impl Clone for Type[src]

This is supported on crate feature clone-impls only.

impl Debug for Type[src]

This is supported on crate feature extra-traits only.

impl Eq for Type[src]

This is supported on crate feature extra-traits only.

impl From<TypeArray> for Type[src]

impl From<TypeBareFn> for Type[src]

impl From<TypeGroup> for Type[src]

impl From<TypeImplTrait> for Type[src]

impl From<TypeInfer> for Type[src]

impl From<TypeMacro> for Type[src]

impl From<TypeNever> for Type[src]

impl From<TypeParen> for Type[src]

impl From<TypePath> for Type[src]

impl From<TypePtr> for Type[src]

impl From<TypeReference> for Type[src]

impl From<TypeSlice> for Type[src]

impl From<TypeTraitObject> for Type[src]

impl From<TypeTuple> for Type[src]

impl Hash for Type[src]

This is supported on crate feature extra-traits only.

impl Parse for Type[src]

This is supported on crate feature parsing only.

impl PartialEq<Type> for Type[src]

This is supported on crate feature extra-traits only.

impl ToTokens for Type[src]

This is supported on crate feature printing only.

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

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Spanned for T where
    T: Spanned + ?Sized
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.