Struct AccessGuard

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

A resolved access to the guarded item.

Implementations§

Source§

impl<'a, T> AccessGuard<'a, T>

Source

pub fn hold_indefinitely(self) -> &'a T

Hold this guard indefinitely, without ever releasing it.

Normaly, when an AccessGuard drops, it releases one access in the AccessQueue so that another Access can resolve. If this method is called, instead it is downgraded into a normal reference and the access is never released.

Source

pub fn reenqueue(self) -> Access<'a, T>

Release the current access and re-enqueue to wait for another access.

Source

pub fn hold_and_reenqueue(self) -> (&'a T, Access<'a, T>)

Hold this access indefinitely while also re-enqueuing

Trait Implementations§

Source§

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

Source§

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

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

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

Source§

type Target = T

The resulting type after dereferencing.
Source§

fn deref(&self) -> &T

Dereferences the value.
Source§

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

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

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

§

impl<'a, T> RefUnwindSafe for AccessGuard<'a, T>
where T: RefUnwindSafe,

§

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

§

impl<'a, T> Sync for AccessGuard<'a, T>
where T: Sync,

§

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

§

impl<'a, T> UnwindSafe for AccessGuard<'a, T>
where T: RefUnwindSafe,

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.