Struct RwLockReadGuard

struct RwLockReadGuard<'rwlock, T: ?Sized + 'rwlock> { ... }

RAII structure used to release the shared read access of a lock when dropped.

This structure is created by the read and try_read methods on RwLock.

Implementations

impl<'rwlock, T: ?Sized> RwLockReadGuard<'rwlock, T>

fn map<U, F>(orig: Self, f: F) -> MappedRwLockReadGuard<'rwlock, U>
where
    F: FnOnce(&T) -> &U,
    U: ?Sized

Makes a MappedRwLockReadGuard for a component of the borrowed data, e.g. an enum variant.

The RwLock is already locked for reading, so this cannot fail.

This is an associated function that needs to be used as RwLockReadGuard::map(...). A method would interfere with methods of the same name on the contents of the RwLockReadGuard used through Deref.

Panics

If the closure panics, the guard will be dropped (unlocked).

fn filter_map<U, F>(orig: Self, f: F) -> Result<MappedRwLockReadGuard<'rwlock, U>, Self>
where
    F: FnOnce(&T) -> Option<&U>,
    U: ?Sized

Makes a MappedRwLockReadGuard 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 reading, so this cannot fail.

This is an associated function that needs to be used as RwLockReadGuard::filter_map(...). A method would interfere with methods of the same name on the contents of the RwLockReadGuard used through Deref.

Panics

If the closure panics, the guard will be dropped (unlocked).

impl<'rwlock, T> Freeze for RwLockReadGuard<'rwlock, T>

impl<'rwlock, T> RefUnwindSafe for RwLockReadGuard<'rwlock, T>

impl<'rwlock, T> Unpin for RwLockReadGuard<'rwlock, T>

impl<'rwlock, T> UnsafeUnpin for RwLockReadGuard<'rwlock, T>

impl<'rwlock, T> UnwindSafe for RwLockReadGuard<'rwlock, T>

impl<P, T> Receiver for RwLockReadGuard<'rwlock, T>

impl<T> Any for RwLockReadGuard<'rwlock, T>

fn type_id(self: &Self) -> TypeId

impl<T> Borrow for RwLockReadGuard<'rwlock, T>

fn borrow(self: &Self) -> &T

impl<T> BorrowMut for RwLockReadGuard<'rwlock, T>

fn borrow_mut(self: &mut Self) -> &mut T

impl<T> From for RwLockReadGuard<'rwlock, T>

fn from(t: T) -> T

Returns the argument unchanged.

impl<T> ToString for RwLockReadGuard<'rwlock, T>

fn to_string(self: &Self) -> String

impl<T, U> Into for RwLockReadGuard<'rwlock, T>

fn into(self: Self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

impl<T, U> TryFrom for RwLockReadGuard<'rwlock, T>

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

impl<T, U> TryInto for RwLockReadGuard<'rwlock, T>

fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>

impl<T: ?Sized + Sync> Sync for RwLockReadGuard<'_, T>

impl<T: ?Sized + fmt::Debug> Debug for RwLockReadGuard<'_, T>

fn fmt(self: &Self, f: &mut Formatter<'_>) -> Result

impl<T: ?Sized + fmt::Display> Display for RwLockReadGuard<'_, T>

fn fmt(self: &Self, f: &mut Formatter<'_>) -> Result

impl<T: ?Sized> Deref for RwLockReadGuard<'_, T>

fn deref(self: &Self) -> &T

impl<T: ?Sized> Drop for RwLockReadGuard<'_, T>

fn drop(self: &mut Self)

impl<T: ?Sized> Send for RwLockReadGuard<'_, T>