pub struct ValueWriteAccess<'a, T>where
T: 'a + ?Sized,{ /* private fields */ }Expand description
Write guard over a value, obtained from a lifetime or one of its handles.
Derefs to the value mutably and releases the write claim on drop. While it is live no other access is allowed.
Implementations§
Source§impl<'a, T> ValueWriteAccess<'a, T>where
T: ?Sized,
impl<'a, T> ValueWriteAccess<'a, T>where
T: ?Sized,
Sourcepub unsafe fn new_raw(
data: &'a mut T,
lifetime: LifetimeState,
) -> ValueWriteAccess<'a, T>
pub unsafe fn new_raw( data: &'a mut T, lifetime: LifetimeState, ) -> ValueWriteAccess<'a, T>
Builds a guard from parts, without going through the state checks.
§Safety
The write claim on lifetime must already be acquired, since dropping
this guard releases one. data must be the value that lifetime
guards, and must not be aliased.
Source§impl<'a, T> ValueWriteAccess<'a, T>where
T: ?Sized,
impl<'a, T> ValueWriteAccess<'a, T>where
T: ?Sized,
Sourcepub fn remap<U>(
self,
f: impl FnOnce(&mut T) -> Option<&mut U>,
) -> Result<ValueWriteAccess<'a, U>, ValueWriteAccess<'a, T>>
pub fn remap<U>( self, f: impl FnOnce(&mut T) -> Option<&mut U>, ) -> Result<ValueWriteAccess<'a, U>, ValueWriteAccess<'a, T>>
Narrows the guard down to a part of the value, for example one field.
Gives the guard back unchanged when f returns None.
Trait Implementations§
Source§impl<T> Deref for ValueWriteAccess<'_, T>where
T: ?Sized,
impl<T> Deref for ValueWriteAccess<'_, T>where
T: ?Sized,
Source§impl<T> DerefMut for ValueWriteAccess<'_, T>where
T: ?Sized,
impl<T> DerefMut for ValueWriteAccess<'_, T>where
T: ?Sized,
Source§impl<T> Drop for ValueWriteAccess<'_, T>where
T: ?Sized,
impl<T> Drop for ValueWriteAccess<'_, T>where
T: ?Sized,
Auto Trait Implementations§
impl<'a, T> !UnwindSafe for ValueWriteAccess<'a, T>
impl<'a, T> Freeze for ValueWriteAccess<'a, T>
impl<'a, T> RefUnwindSafe for ValueWriteAccess<'a, T>
impl<'a, T> Send for ValueWriteAccess<'a, T>
impl<'a, T> Sync for ValueWriteAccess<'a, T>
impl<'a, T> Unpin for ValueWriteAccess<'a, T>
impl<'a, T> UnsafeUnpin for ValueWriteAccess<'a, T>
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