UseType

Struct UseType 

Source
pub struct UseType<Type>(pub PhantomData<Type>);
Expand description

The UseType pattern is used to implement a CGP abstract type with the specified Type.

When a CGP type component is defined using the #[cgp_type] macro, a provider implementation of UseType is automatically generated. With UseType, users can instantiate an abstract type with the specified Type without having to manually implement the given provider trait.

§Example

Given the following type component definition:

#[cgp_type]
pub trait HasNameType {
    type Name;
}

The following UseType implementation would be generated:

impl<Context, Type> NameTypeProvider<Context> for UseType<Type> {
    type Name = Type;
}

Tuple Fields§

§0: PhantomData<Type>

Trait Implementations§

Source§

impl<Context, Tag, Type> ProvideType<Context, Tag> for UseType<Type>

Source§

type Type = Type

Source§

impl<Context, Tag, Type> IsProviderFor<TypeComponent, Context, Tag> for UseType<Type>

Auto Trait Implementations§

§

impl<Type> Freeze for UseType<Type>

§

impl<Type> RefUnwindSafe for UseType<Type>
where Type: RefUnwindSafe,

§

impl<Type> Send for UseType<Type>
where Type: Send,

§

impl<Type> Sync for UseType<Type>
where Type: Sync,

§

impl<Type> Unpin for UseType<Type>
where Type: Unpin,

§

impl<Type> UnwindSafe for UseType<Type>
where Type: UnwindSafe,

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

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

Source§

fn into(self) -> U

Calls U::from(self).

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

Source§

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

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

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

Source§

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

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.