Enum GenericArgument

#[non_exhaustive]
pub enum GenericArgument

An individual generic argument, like 'a, T, or Item = T.

Variants

Lifetime(Lifetime)

A lifetime argument.

Type(Type)

A type argument.

Const(Expr)

A const expression. Must be inside of a block.

NOTE: Identity expressions are represented as Type arguments, as they are indistinguishable syntactically.

AssocType(AssocType)

A binding (equality constraint) on an associated type: the Item = u8 in Iterator<Item = u8>.

AssocConst(AssocConst)

An equality constraint on an associated constant: the PANIC = false in Trait<PANIC = false>.

Constraint(Constraint)

An associated type bound: Iterator<Item: Display>.

Trait Implementations

impl Clone for GenericArgument

fn clone(&self) -> Self

impl Parse for GenericArgument

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

impl ToTokens for GenericArgument

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

Auto Trait Implementations

impl !Send for GenericArgument

impl !Sync for GenericArgument

impl Freeze for GenericArgument

impl RefUnwindSafe for GenericArgument

impl Unpin for GenericArgument

impl UnsafeUnpin for GenericArgument

impl UnwindSafe for GenericArgument

Blanket Implementations

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

fn type_id(&self) -> TypeId

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

fn borrow(&self) -> &T

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

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

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

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

impl<T> From<T> for GenericArgument

fn from(t: T) -> T

Returns the argument unchanged.

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

fn span(&self) -> Span

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

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

impl<T, U> Into<U> for GenericArgument 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 GenericArgument where U: Into<T>,

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

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

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