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.

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>