Struct TypeNever

pub struct TypeNever { pub attrs: Vec<Attribute>, pub bang_token: Not }

The never type: !.

Fields

attrs: Vec<Attribute>
bang_token: Not

Trait Implementations

impl Clone for TypeNever

fn clone(&self) -> Self

impl Parse for TypeNever

fn parse(input: ParseStream<'_>) -> Result<Self>

impl ToTokens for TypeNever

fn to_tokens(&self, tokens: &mut TokenStream)

Auto Trait Implementations

impl !Send for TypeNever

impl !Sync for TypeNever

impl Freeze for TypeNever

impl RefUnwindSafe for TypeNever

impl Unpin for TypeNever

impl UnsafeUnpin for TypeNever

impl UnwindSafe for TypeNever

Blanket Implementations

impl<T> Any for TypeNever where T: 'static + ?Sized,

fn type_id(&self) -> TypeId

impl<T> Borrow<T> for TypeNever where T: ?Sized,

fn borrow(&self) -> &T

impl<T> BorrowMut<T> for TypeNever where T: ?Sized,

fn borrow_mut(&mut self) -> &mut T

impl<T> CloneToUninit for TypeNever where T: Clone,

unsafe fn clone_to_uninit(&self, dest: *mut u8)

impl<T> From<T> for TypeNever

fn from(t: T) -> T

Returns the argument unchanged.

impl<T> Spanned for TypeNever where T: Spanned + ?Sized,

fn span(&self) -> Span

impl<T> ToOwned for TypeNever where T: Clone,

type Owned = T;
fn to_owned(&self) -> T
fn clone_into(&self, target: &mut T)

impl<T, U> Into<U> for TypeNever where U: From<T>,

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

impl<T, U> TryFrom<U> for TypeNever where U: Into<T>,

type Error = never;
fn try_from(value: U) -> Result<T, never>

impl<T, U> TryInto<U> for TypeNever where U: TryFrom<T>,

type Error = <U as TryFrom<T>>::Error;
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>