pub struct MappedRwLockWriteGuard<'a, T>where
T: 'a + ?Sized,{
data: NonNull<T>,
inner_lock: &'a RwLock,
poison_flag: &'a Flag,
poison: Guard,
_variance: PhantomData<&'a mut T>,
}
mapped_lock_guards
)Expand description
RAII structure used to release the exclusive write access of a lock when dropped, which can point to a subfield of the protected data.
This structure is created by the map
and filter_map
methods
on RwLockWriteGuard
.
Fields§
§data: NonNull<T>
mapped_lock_guards
)inner_lock: &'a RwLock
mapped_lock_guards
)poison_flag: &'a Flag
mapped_lock_guards
)poison: Guard
mapped_lock_guards
)_variance: PhantomData<&'a mut T>
mapped_lock_guards
)Implementations§
Source§impl<'a, T> MappedRwLockWriteGuard<'a, T>where
T: ?Sized,
impl<'a, T> MappedRwLockWriteGuard<'a, T>where
T: ?Sized,
Sourcepub fn map<U, F>(
orig: MappedRwLockWriteGuard<'a, T>,
f: F,
) -> MappedRwLockWriteGuard<'a, U>
🔬This is a nightly-only experimental API. (mapped_lock_guards
)
pub fn map<U, F>( orig: MappedRwLockWriteGuard<'a, T>, f: F, ) -> MappedRwLockWriteGuard<'a, U>
mapped_lock_guards
)Makes a MappedRwLockWriteGuard
for a component of the borrowed data,
e.g. an enum variant.
The RwLock
is already locked for writing, so this cannot fail.
This is an associated function that needs to be used as
MappedRwLockWriteGuard::map(...)
. A method would interfere with
methods of the same name on the contents of the MappedRwLockWriteGuard
used through Deref
.
§Panics
If the closure panics, the guard will be dropped (unlocked) and the RwLock will be poisoned.
Sourcepub fn filter_map<U, F>(
orig: MappedRwLockWriteGuard<'a, T>,
f: F,
) -> Result<MappedRwLockWriteGuard<'a, U>, MappedRwLockWriteGuard<'a, T>>
🔬This is a nightly-only experimental API. (mapped_lock_guards
)
pub fn filter_map<U, F>( orig: MappedRwLockWriteGuard<'a, T>, f: F, ) -> Result<MappedRwLockWriteGuard<'a, U>, MappedRwLockWriteGuard<'a, T>>
mapped_lock_guards
)Makes a MappedRwLockWriteGuard
for a component of the borrowed data.
The original guard is returned as an Err(...)
if the closure returns
None
.
The RwLock
is already locked for writing, so this cannot fail.
This is an associated function that needs to be used as
MappedRwLockWriteGuard::filter_map(...)
. A method would interfere with
methods of the same name on the contents of the MappedRwLockWriteGuard
used through Deref
.
§Panics
If the closure panics, the guard will be dropped (unlocked) and the RwLock will be poisoned.
Trait Implementations§
Source§impl<T> Debug for MappedRwLockWriteGuard<'_, T>
impl<T> Debug for MappedRwLockWriteGuard<'_, T>
Source§impl<T> Deref for MappedRwLockWriteGuard<'_, T>where
T: ?Sized,
impl<T> Deref for MappedRwLockWriteGuard<'_, T>where
T: ?Sized,
Source§impl<T> DerefMut for MappedRwLockWriteGuard<'_, T>where
T: ?Sized,
impl<T> DerefMut for MappedRwLockWriteGuard<'_, T>where
T: ?Sized,
Source§impl<T> Display for MappedRwLockWriteGuard<'_, T>
impl<T> Display for MappedRwLockWriteGuard<'_, T>
Source§impl<T> Drop for MappedRwLockWriteGuard<'_, T>where
T: ?Sized,
impl<T> Drop for MappedRwLockWriteGuard<'_, T>where
T: ?Sized,
impl<T> !Send for MappedRwLockWriteGuard<'_, T>where
T: ?Sized,
impl<T> Sync for MappedRwLockWriteGuard<'_, T>
Auto Trait Implementations§
impl<'a, T> Freeze for MappedRwLockWriteGuard<'a, T>where
T: ?Sized,
impl<'a, T> RefUnwindSafe for MappedRwLockWriteGuard<'a, T>where
T: RefUnwindSafe + ?Sized,
impl<'a, T> Unpin for MappedRwLockWriteGuard<'a, T>where
T: ?Sized,
impl<'a, T> !UnwindSafe for MappedRwLockWriteGuard<'a, T>
Blanket Implementations§
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
Source§impl<T> SizedTypeProperties for T
impl<T> SizedTypeProperties for T
Source§#[doc(hidden)] const IS_ZST: bool = _
#[doc(hidden)] const IS_ZST: bool = _
sized_type_properties
)Source§#[doc(hidden)] const LAYOUT: Layout = _
#[doc(hidden)] const LAYOUT: Layout = _
sized_type_properties
)Source§#[doc(hidden)] const MAX_SLICE_LEN: usize = _
#[doc(hidden)] const MAX_SLICE_LEN: usize = _
sized_type_properties
)[Self]
. Read more