Struct RwLockMappedWriteGuard
pub struct RwLockMappedWriteGuard<'a, T: ?Sized> { /* private fields */ }
RAII structure used to release the exclusive write access of a lock when dropped.
This structure is created by mapping an RwLockWriteGuard. It is a
separate type from RwLockWriteGuard to disallow downgrading a mapped
guard, since doing so can cause undefined behavior.
Implementations
impl<'a, T: ?Sized> RwLockMappedWriteGuard<'a, T>
fn map<F, U: ?Sized>(this: Self, f: F) -> RwLockMappedWriteGuard<'a, U> where F: FnOnce(&mut T) -> &mut U,Makes a new
RwLockMappedWriteGuardfor a component of the locked data.This operation cannot fail as the
RwLockMappedWriteGuardpassed in already locked the data.This is an associated function that needs to be used as
RwLockMappedWriteGuard::map(..). A method would interfere with methods of the same name on the contents of the locked data.This is an asynchronous version of
RwLockWriteGuard::mapfrom theparking_lotcrate.Examples
use ; ; # # asyncfn try_map<F, U: ?Sized>(this: Self, f: F) -> Result<RwLockMappedWriteGuard<'a, U>, Self> where F: FnOnce(&mut T) -> Option<&mut U>,Attempts to make a new
RwLockMappedWriteGuardfor a component of the locked data. The original guard is returned if the closure returnsNone.This operation cannot fail as the
RwLockMappedWriteGuardpassed in already locked the data.This is an associated function that needs to be used as
RwLockMappedWriteGuard::try_map(...). A method would interfere with methods of the same name on the contents of the locked data.This is an asynchronous version of
RwLockWriteGuard::try_mapfrom theparking_lotcrate.Examples
use ; ; # # async
Trait Implementations
impl<'a, T> Debug for RwLockMappedWriteGuard<'a, T>
where
T: Debug + ?Sized,
fn fmt(&self, f: &mut Formatter<'_>) -> Result
impl<'a, T> Display for RwLockMappedWriteGuard<'a, T>
where
T: Display + ?Sized,
fn fmt(&self, f: &mut Formatter<'_>) -> Result
impl<'a, T: ?Sized> Drop for RwLockMappedWriteGuard<'a, T>
fn drop(&mut self)
impl<T> Send for RwLockMappedWriteGuard<'_, T>
where
T: ?Sized + Send + Sync,
impl<T> Sync for RwLockMappedWriteGuard<'_, T>
where
T: ?Sized + Send + Sync,
impl<T: ?Sized> Deref for RwLockMappedWriteGuard<'_, T>
type Target = T;fn deref(&self) -> &T
impl<T: ?Sized> DerefMut for RwLockMappedWriteGuard<'_, T>
fn deref_mut(&mut self) -> &mut T
Auto Trait Implementations
impl<'a, T> !RefUnwindSafe for RwLockMappedWriteGuard<'a, T>
impl<'a, T> !UnwindSafe for RwLockMappedWriteGuard<'a, T>
impl<'a, T> Freeze for RwLockMappedWriteGuard<'a, T>
where
*mut T: Freeze,
PhantomData<&'a mut T>: Freeze,
T: ?Sized,
impl<'a, T> Unpin for RwLockMappedWriteGuard<'a, T>
where
*mut T: Unpin,
PhantomData<&'a mut T>: Unpin,
T: ?Sized,
impl<'a, T> UnsafeUnpin for RwLockMappedWriteGuard<'a, T>
where
*mut T: UnsafeUnpin,
PhantomData<&'a mut T>: UnsafeUnpin,
T: ?Sized,
Blanket Implementations
impl<P, T> Receiver for RwLockMappedWriteGuard<'a, T>
where
P: Deref<Target = T> + ?Sized,
T: ?Sized,
type Target = T;
impl<T> Any for RwLockMappedWriteGuard<'a, T>
where
T: 'static + ?Sized,
fn type_id(&self) -> TypeId
impl<T> Borrow<T> for RwLockMappedWriteGuard<'a, T>
where
T: ?Sized,
fn borrow(&self) -> &T
impl<T> BorrowMut<T> for RwLockMappedWriteGuard<'a, T>
where
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
impl<T> From<T> for RwLockMappedWriteGuard<'a, T>
fn from(t: T) -> TReturns the argument unchanged.
impl<T> ToString for RwLockMappedWriteGuard<'a, T>
where
T: Display + ?Sized,
fn to_string(&self) -> String
impl<T, U> Into<U> for RwLockMappedWriteGuard<'a, T>
where
U: From<T>,
fn into(self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom<U> for RwLockMappedWriteGuard<'a, T>
where
U: Into<T>,
type Error = never;fn try_from(value: U) -> Result<T, never>
impl<T, U> TryInto<U> for RwLockMappedWriteGuard<'a, T>
where
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error;fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>