Skip to main content

IrqGuard

Struct IrqGuard 

Source
pub struct IrqGuard<'cell, T: ?Sized> { /* private fields */ }
Available on crate feature full and non-crate feature use_std only.
Expand description

An RAII implementation of a “scoped lock” of an IrqCell. When this structure is dropped (falls out of scope), the lock will be unlocked.

The data protected by the IrqCell can be accessed through this guard via its [Deref] and [DerefMut] implementations.

This structure is created by the lock and make_guard_unchecked methods on IrqCell.

Implementations§

Source§

impl<T: ?Sized> IrqGuard<'_, T>

Source

pub fn unlock_no_interrupts(this: Self)

Unlocks the IrqCell, keeping interrupts disabled regardless of their previous state.

Trait Implementations§

Source§

impl<'b, T: ?Sized + Unsize<U>, U: ?Sized> CoerceUnsized<IrqGuard<'b, U>> for IrqGuard<'b, T>

Source§

impl<T: Debug> Debug for IrqGuard<'_, T>

Source§

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

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

impl<T: ?Sized> Deref for IrqGuard<'_, T>

Source§

type Target = T

The resulting type after dereferencing.
Source§

fn deref(&self) -> &T

Dereferences the value.
Source§

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

Source§

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

Mutably dereferences the value.
Source§

impl<'a, T: ?Sized + Unsize<U>, U: ?Sized> DispatchFromDyn<IrqGuard<'a, U>> for IrqGuard<'a, T>

Source§

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

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
§

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<'cell, T> !RefUnwindSafe for IrqGuard<'cell, T>

§

impl<'cell, T> !Send for IrqGuard<'cell, T>

§

impl<'cell, T> !Sync for IrqGuard<'cell, T>

§

impl<'cell, T> !UnwindSafe for IrqGuard<'cell, T>

§

impl<'cell, T> Freeze for IrqGuard<'cell, T>
where &'cell IrqCell<T>: Freeze, T: ?Sized,

§

impl<'cell, T> Unpin for IrqGuard<'cell, T>
where &'cell IrqCell<T>: Unpin, T: ?Sized,

§

impl<'cell, T> UnsafeUnpin for IrqGuard<'cell, T>
where &'cell IrqCell<T>: UnsafeUnpin, T: ?Sized,

Blanket Implementations§

§

impl<T> Any for T
where T: 'static + ?Sized,

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> Borrow<T> for T
where T: ?Sized,

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

impl<T> BorrowMut<T> for T
where T: ?Sized,

§

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

Mutably borrows from an owned value. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T, U> Into<U> for T
where U: From<T>,

§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = !

The type returned in the event of a conversion error.
§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.