Struct tokio::sync::MappedMutexGuard
source · pub struct MappedMutexGuard<'a, T: ?Sized> {
s: &'a Semaphore,
data: *mut T,
marker: PhantomData<&'a mut T>,
}
Expand description
A handle to a held Mutex
that has had a function applied to it via MutexGuard::map
.
This can be used to hold a subfield of the protected data.
Fields§
§s: &'a Semaphore
§data: *mut T
§marker: PhantomData<&'a mut T>
Implementations§
source§impl<'a, T: ?Sized> MappedMutexGuard<'a, T>
impl<'a, T: ?Sized> MappedMutexGuard<'a, T>
fn skip_drop(self) -> MappedMutexGuardInner<'a, T>
sourcepub fn map<U, F>(this: Self, f: F) -> MappedMutexGuard<'a, U>
pub fn map<U, F>(this: Self, f: F) -> MappedMutexGuard<'a, U>
Makes a new MappedMutexGuard
for a component of the locked data.
This operation cannot fail as the MappedMutexGuard
passed in already locked the mutex.
This is an associated function that needs to be used as MappedMutexGuard::map(...)
. A
method would interfere with methods of the same name on the contents of the locked data.
sourcepub fn try_map<U, F>(this: Self, f: F) -> Result<MappedMutexGuard<'a, U>, Self>
pub fn try_map<U, F>(this: Self, f: F) -> Result<MappedMutexGuard<'a, U>, Self>
Attempts to make a new MappedMutexGuard
for a component of the locked data. The
original guard is returned if the closure returns None
.
This operation cannot fail as the MappedMutexGuard
passed in already locked the mutex.
This is an associated function that needs to be used as MappedMutexGuard::try_map(...)
. A
method would interfere with methods of the same name on the contents of the locked data.