Skip to main content

ValueWriteAccess

Struct ValueWriteAccess 

Source
pub struct ValueWriteAccess<'a, 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: ?Sized> ValueWriteAccess<'a, T>

Source

pub unsafe fn new_raw(data: &'a mut T, lifetime: LifetimeState) -> Self

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: ?Sized> ValueWriteAccess<'a, T>

Source

pub fn remap<U>( self, f: impl FnOnce(&mut T) -> Option<&mut U>, ) -> Result<ValueWriteAccess<'a, U>, Self>

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: ?Sized> Deref for ValueWriteAccess<'_, T>

Source§

type Target = T

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl<T: ?Sized> DerefMut for ValueWriteAccess<'_, T>

Source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.
Source§

impl<T: ?Sized> Drop for ValueWriteAccess<'_, T>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more

Auto Trait Implementations§

§

impl<'a, T> !UnwindSafe for ValueWriteAccess<'a, T>

§

impl<'a, T> Freeze for ValueWriteAccess<'a, T>
where &'a mut T: Freeze, T: ?Sized,

§

impl<'a, T> RefUnwindSafe for ValueWriteAccess<'a, T>

§

impl<'a, T> Send for ValueWriteAccess<'a, T>
where &'a mut T: Send, T: ?Sized,

§

impl<'a, T> Sync for ValueWriteAccess<'a, T>
where &'a mut T: Sync, T: ?Sized,

§

impl<'a, T> Unpin for ValueWriteAccess<'a, T>
where &'a mut T: Unpin, T: ?Sized,

§

impl<'a, T> UnsafeUnpin for ValueWriteAccess<'a, T>

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> Finalize for T

Source§

unsafe fn finalize_raw(data: *mut ())

Drops the value stored at data in place. 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<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
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.