ProjectMut

Trait ProjectMut 

Source
pub trait ProjectMut: Project {
    type OutputMut<'a, Field: 'a>
       where Self: 'a;

    // Required method
    unsafe fn project_mut<'a, Field>(
        &'a mut self,
        project_field: fn(*mut Self::Base) -> *mut Field,
    ) -> Self::OutputMut<'a, Field>;
}

Required Associated Types§

Source

type OutputMut<'a, Field: 'a> where Self: 'a

Required Methods§

Source

unsafe fn project_mut<'a, Field>( &'a mut self, project_field: fn(*mut Self::Base) -> *mut Field, ) -> Self::OutputMut<'a, Field>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<P> ProjectMut for Pin<P>
where P: DerefMut,

Source§

type OutputMut<'a, Field: 'a> = Pin<&'a mut Field> where Self: 'a

Source§

unsafe fn project_mut<'a, Field: ?Sized>( &'a mut self, project_field: fn(*mut Self::Base) -> *mut Field, ) -> Pin<&'a mut Field>

Source§

impl<T> ProjectMut for &mut T
where T: ProjectMut,

Source§

type OutputMut<'a, Field: 'a> = <T as ProjectMut>::OutputMut<'a, Field> where Self: 'a

Source§

unsafe fn project_mut<'a, Field>( &'a mut self, project_field: fn(*mut Self::Base) -> *mut Field, ) -> Self::OutputMut<'a, Field>

Source§

impl<T> ProjectMut for MaybeUninit<T>

Source§

type OutputMut<'a, Field: 'a> = &'a mut MaybeUninit<Field> where Self: 'a

Source§

unsafe fn project_mut<'a, Field>( &'a mut self, project_field: fn(*mut Self::Base) -> *mut Field, ) -> Self::OutputMut<'a, Field>

Implementors§