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<TypeProviderComponent, Context, Tag> for UseType<Type>
Auto Trait Implementations§
impl<Type> Freeze for UseType<Type>where
PhantomData<Type>: Freeze,
impl<Type> RefUnwindSafe for UseType<Type>where
PhantomData<Type>: RefUnwindSafe,
impl<Type> Send for UseType<Type>where
PhantomData<Type>: Send,
impl<Type> Sync for UseType<Type>where
PhantomData<Type>: Sync,
impl<Type> Unpin for UseType<Type>where
PhantomData<Type>: Unpin,
impl<Type> UnsafeUnpin for UseType<Type>where
PhantomData<Type>: UnsafeUnpin,
impl<Type> UnwindSafe for UseType<Type>where
PhantomData<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