pub struct MappedMutexGuard<'a, T, U>{ /* private fields */ }Available on crate feature
alloc only.Expand description
An RAII guard returned by the MutexGuard::map and MappedMutexGuard::map methods.
When this structure is dropped (falls out of scope), the lock will be unlocked.
Implementations§
Source§impl<'a, T, U> MappedMutexGuard<'a, T, U>
impl<'a, T, U> MappedMutexGuard<'a, T, U>
Sourcepub fn map<V, F>(
this: MappedMutexGuard<'a, T, U>,
f: F,
) -> MappedMutexGuard<'a, T, V>
pub fn map<V, F>( this: MappedMutexGuard<'a, T, U>, f: F, ) -> MappedMutexGuard<'a, T, V>
Returns a locked view over a portion of the locked data.
§Example
use futures::lock::{MappedMutexGuard, Mutex, MutexGuard};
let data = Mutex::new(Some("value".to_string()));
{
let locked_str = MutexGuard::map(data.lock().await, |opt| opt.as_mut().unwrap());
let locked_char = MappedMutexGuard::map(locked_str, |s| s.get_mut(0..1).unwrap());
assert_eq!(&*locked_char, "v");
}Trait Implementations§
Source§impl<T, U> Debug for MappedMutexGuard<'_, T, U>
impl<T, U> Debug for MappedMutexGuard<'_, T, U>
Source§impl<T, U> Deref for MappedMutexGuard<'_, T, U>
impl<T, U> Deref for MappedMutexGuard<'_, T, U>
Source§impl<T, U> DerefMut for MappedMutexGuard<'_, T, U>
impl<T, U> DerefMut for MappedMutexGuard<'_, T, U>
Source§impl<T, U> Drop for MappedMutexGuard<'_, T, U>
impl<T, U> Drop for MappedMutexGuard<'_, T, U>
impl<T, U> Send for MappedMutexGuard<'_, T, U>
impl<T, U> Sync for MappedMutexGuard<'_, T, U>
Auto Trait Implementations§
impl<'a, T, U> !RefUnwindSafe for MappedMutexGuard<'a, T, U>
impl<'a, T, U> !UnwindSafe for MappedMutexGuard<'a, T, U>
impl<'a, T, U> Freeze for MappedMutexGuard<'a, T, U>
impl<'a, T, U> Unpin for MappedMutexGuard<'a, T, U>
impl<'a, T, U> UnsafeUnpin for MappedMutexGuard<'a, T, U>
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
Mutably borrows from an owned value. Read more
impl<R> CryptoRng for R
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreimpl<R> RngCore for Rwhere
R: Rng,
Source§impl<R> RngExt for R
impl<R> RngExt for R
Source§fn random<T>(&mut self) -> Twhere
StandardUniform: Distribution<T>,
fn random<T>(&mut self) -> Twhere
StandardUniform: Distribution<T>,
Return a random value via the
StandardUniform distribution. Read moreSource§fn random_iter<T>(self) -> Iter<StandardUniform, Self, T>
fn random_iter<T>(self) -> Iter<StandardUniform, Self, T>
Source§fn random_range<T, R>(&mut self, range: R) -> Twhere
T: SampleUniform,
R: SampleRange<T>,
fn random_range<T, R>(&mut self, range: R) -> Twhere
T: SampleUniform,
R: SampleRange<T>,
Generate a random value in the given range. Read more
Source§fn random_bool(&mut self, p: f64) -> bool
fn random_bool(&mut self, p: f64) -> bool
Return a bool with a probability
p of being true. Read moreSource§fn random_ratio(&mut self, numerator: u32, denominator: u32) -> bool
fn random_ratio(&mut self, numerator: u32, denominator: u32) -> bool
Return a bool with a probability of
numerator/denominator of being
true. Read moreSource§fn sample<T, D>(&mut self, distr: D) -> Twhere
D: Distribution<T>,
fn sample<T, D>(&mut self, distr: D) -> Twhere
D: Distribution<T>,
Sample a new value, using the given distribution. Read more
Source§fn sample_iter<T, D>(self, distr: D) -> Iter<D, Self, T>where
D: Distribution<T>,
Self: Sized,
fn sample_iter<T, D>(self, distr: D) -> Iter<D, Self, T>where
D: Distribution<T>,
Self: Sized,
Create an iterator that generates values using the given distribution. Read more