Struct UpdateGuard

Source
pub struct UpdateGuard<'a, T: 'a> { /* private fields */ }
Expand description

A RAII guard providing mutable access to the inactive value of a PairLock, The values becomes active when the guard is dropped.

Implementations§

Source§

impl<'a, T> UpdateGuard<'a, T>

Source

pub fn active(this: &Self) -> &T

Returns a shared reference to the active value of the PairLock.

It can not be mutate it while the PairLock is locked, and is therefore safe to read.

Source

pub fn both(this: &mut Self) -> (&mut T, &T)

Returns references to both the inactive (mutable) and active value of the PairLock.

Source

pub fn cancel(this: Self)

Aborts the update by releasing the lock without making the mutable value active.

Any changes made to the inactive value will however be visible to the next .update() or .replace().

Trait Implementations§

Source§

impl<'a, T: Debug> Debug for UpdateGuard<'a, T>

Source§

fn fmt(&self, fmtr: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'a, T> Deref for UpdateGuard<'a, T>

Source§

type Target = T

The resulting type after dereferencing.
Source§

fn deref(&self) -> &T

Dereferences the value.
Source§

impl<'a, T> DerefMut for UpdateGuard<'a, T>

Source§

fn deref_mut(&mut self) -> &mut T

Mutably dereferences the value.
Source§

impl<'a, T> Drop for UpdateGuard<'a, T>

Source§

fn drop(&mut self)

Makes the value active and releases the update lock

Source§

impl<'a, T> PartialEq for UpdateGuard<'a, T>

Source§

fn eq(&self, other: &Self) -> bool

Convenience impl for comparing Results containing this type.

Only compares equal against itself (ptr::eq(self, other)).

1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.

Auto Trait Implementations§

§

impl<'a, T> Freeze for UpdateGuard<'a, T>

§

impl<'a, T> !RefUnwindSafe for UpdateGuard<'a, T>

§

impl<'a, T> !Send for UpdateGuard<'a, T>

§

impl<'a, T> Sync for UpdateGuard<'a, T>
where T: Send + Sync,

§

impl<'a, T> Unpin for UpdateGuard<'a, T>

§

impl<'a, T> !UnwindSafe for UpdateGuard<'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> 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.