Skip to main content

LockAccess

Trait LockAccess 

Source
pub trait LockAccess<Lock, Inner> {
    // Required methods
    fn lock_read(&self, lock: &Lock) -> Option<Inner>;
    fn lock_write(&self, lock: &Lock) -> Option<Inner>;
}
Expand description

Trait for types that can provide lock/unlock behavior Converts from a Lock type to Inner or InnerMut value

Required Methods§

Source

fn lock_read(&self, lock: &Lock) -> Option<Inner>

Get immutable access to the inner value

Source

fn lock_write(&self, lock: &Lock) -> Option<Inner>

Get mutable access to the inner value

Note: Takes &Lock not &mut Lock because locks like Mutex/RwLock provide interior mutability - we don’t need exclusive access to the lock container itself, just to the data inside.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<'a, T: 'static> LockAccess<Rc<RefCell<T>>, &'a T> for RcRefCellAccess<T>

Source§

impl<'a, T: 'static> LockAccess<Rc<RefCell<T>>, &'a mut T> for RcRefCellAccess<T>

Source§

impl<'a, T: 'static> LockAccess<Arc<Mutex<T>>, &'a T> for ArcMutexAccess<T>

Source§

impl<'a, T: 'static> LockAccess<Arc<Mutex<T>>, &'a mut T> for ArcMutexAccess<T>

Source§

impl<'a, T: 'static> LockAccess<Arc<RwLock<T>>, &'a T> for ArcRwLockAccess<T>

Source§

impl<'a, T: 'static> LockAccess<Arc<RwLock<T>>, &'a mut T> for ArcRwLockAccess<T>

Source§

impl<'a, T: 'static> LockAccess<Mutex<T>, &'a T> for StdMutexAccess<T>

Source§

impl<'a, T: 'static> LockAccess<Mutex<T>, &'a mut T> for StdMutexAccess<T>

Source§

impl<'a, T: 'static> LockAccess<RwLock<T>, &'a T> for StdRwLockAccess<T>

Source§

impl<'a, T: 'static> LockAccess<RwLock<T>, &'a mut T> for StdRwLockAccess<T>