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§
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> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more