pub struct ReentrantLockGuard<'a, T>where
T: 'a + ?Sized,{ /* private fields */ }
🔬This is a nightly-only experimental API. (
reentrant_lock
)Expand description
An RAII implementation of a “scoped lock” of a re-entrant lock. When this structure is dropped (falls out of scope), the lock will be unlocked.
The data protected by the mutex can be accessed through this guard via its
Deref
implementation.
This structure is created by the lock
method on
ReentrantLock
.
§Mutability
Unlike MutexGuard
, ReentrantLockGuard
does not
implement DerefMut
, because implementation of
the trait would violate Rust’s reference aliasing rules. Use interior
mutability (usually RefCell
) in order to mutate
the guarded data.
Trait Implementations§
source§impl<T> Debug for ReentrantLockGuard<'_, T>
impl<T> Debug for ReentrantLockGuard<'_, T>
source§impl<T> Deref for ReentrantLockGuard<'_, T>where
T: ?Sized,
impl<T> Deref for ReentrantLockGuard<'_, T>where
T: ?Sized,
source§impl<T> Display for ReentrantLockGuard<'_, T>
impl<T> Display for ReentrantLockGuard<'_, T>
source§impl<T> Drop for ReentrantLockGuard<'_, T>where
T: ?Sized,
impl<T> Drop for ReentrantLockGuard<'_, T>where
T: ?Sized,
impl<T> !Send for ReentrantLockGuard<'_, T>where
T: ?Sized,
Auto Trait Implementations§
impl<'a, T: ?Sized> Freeze for ReentrantLockGuard<'a, T>
impl<'a, T: ?Sized> RefUnwindSafe for ReentrantLockGuard<'a, T>where
T: RefUnwindSafe,
impl<'a, T: ?Sized> Sync for ReentrantLockGuard<'a, T>where
T: Send,
impl<'a, T: ?Sized> Unpin for ReentrantLockGuard<'a, T>
impl<'a, T: ?Sized> UnwindSafe for ReentrantLockGuard<'a, T>where
T: RefUnwindSafe,
Blanket Implementations§
source§impl<T> Also for T
impl<T> Also for T
source§impl<T, Res> Apply<Res> for Twhere
T: ?Sized,
impl<T, Res> Apply<Res> for Twhere
T: ?Sized,
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
source§impl<T> ByteSize for T
impl<T> ByteSize for T
source§const BYTE_ALIGN: usize = _
const BYTE_ALIGN: usize = _
The alignment of this type in bytes.
source§fn byte_align(&self) -> usize
fn byte_align(&self) -> usize
Returns the alignment of this type in bytes.
source§impl<T> ExtAny for Twhere
T: Any,
impl<T> ExtAny for Twhere
T: Any,
source§fn as_any_mut(&mut self) -> &mut dyn Anywhere
Self: Sized,
fn as_any_mut(&mut self) -> &mut dyn Anywhere
Self: Sized,
source§impl<T> Mem for Twhere
T: ?Sized,
impl<T> Mem for Twhere
T: ?Sized,
source§const NEEDS_DROP: bool = _
const NEEDS_DROP: bool = _
Whether dropping values of this type matters.
source§fn mem_needs_drop(&self) -> bool
fn mem_needs_drop(&self) -> bool
Returns
true
if dropping values of this type matters.source§fn mem_forget(self)where
Self: Sized,
fn mem_forget(self)where
Self: Sized,
Forgets about
self
without running its destructor.source§fn mem_replace(&mut self, other: Self) -> Selfwhere
Self: Sized,
fn mem_replace(&mut self, other: Self) -> Selfwhere
Self: Sized,
Replaces
self
with other, returning the previous value of self
.source§fn mem_take(&mut self) -> Selfwhere
Self: Default,
fn mem_take(&mut self) -> Selfwhere
Self: Default,
Replaces
self
with its default value, returning the previous value of self
.source§fn mem_swap(&mut self, other: &mut Self)where
Self: Sized,
fn mem_swap(&mut self, other: &mut Self)where
Self: Sized,
Swaps the value of
self
and other
without deinitializing either one.source§fn mem_as_bytes(&self) -> &[u8] ⓘ
fn mem_as_bytes(&self) -> &[u8] ⓘ
Available on crate feature
unsafe_slice
only.