LockQueryExt

Trait LockQueryExt 

Source
pub trait LockQueryExt<T, L>
where L: LockValue<T>,
{ // Required method fn lock_iter( &self, ) -> Box<dyn Iterator<Item = LockedValueRef<'_, T, L>> + '_>; }
Expand description

Extension trait for querying collections of locks.

Provides convenient methods for querying HashMaps and Vecs containing locked values without data copying.

Required Methods§

Source

fn lock_iter(&self) -> Box<dyn Iterator<Item = LockedValueRef<'_, T, L>> + '_>

Create an iterator over locked values for querying.

§Example
let map: HashMap<String, Arc<RwLock<Product>>> = /* ... */;
let iter = map.lock_iter();

Implementations on Foreign Types§

Source§

impl<K, V> LockQueryExt<V, Arc<Mutex<V>>> for HashMap<K, Arc<Mutex<V>>>
where K: Eq + Hash,

Source§

fn lock_iter( &self, ) -> Box<dyn Iterator<Item = LockedValueRef<'_, V, Arc<Mutex<V>>>> + '_>

Source§

impl<K, V> LockQueryExt<V, Arc<RwLock<V>>> for HashMap<K, Arc<RwLock<V>>>
where K: Eq + Hash,

Source§

fn lock_iter( &self, ) -> Box<dyn Iterator<Item = LockedValueRef<'_, V, Arc<RwLock<V>>>> + '_>

Source§

impl<T> LockQueryExt<T, Arc<Mutex<T>>> for Vec<Arc<Mutex<T>>>

Source§

fn lock_iter( &self, ) -> Box<dyn Iterator<Item = LockedValueRef<'_, T, Arc<Mutex<T>>>> + '_>

Source§

impl<T> LockQueryExt<T, Arc<Mutex<T>>> for [Arc<Mutex<T>>]

Source§

fn lock_iter( &self, ) -> Box<dyn Iterator<Item = LockedValueRef<'_, T, Arc<Mutex<T>>>> + '_>

Source§

impl<T> LockQueryExt<T, Arc<RwLock<T>>> for Vec<Arc<RwLock<T>>>

Source§

fn lock_iter( &self, ) -> Box<dyn Iterator<Item = LockedValueRef<'_, T, Arc<RwLock<T>>>> + '_>

Source§

impl<T> LockQueryExt<T, Arc<RwLock<T>>> for [Arc<RwLock<T>>]

Source§

fn lock_iter( &self, ) -> Box<dyn Iterator<Item = LockedValueRef<'_, T, Arc<RwLock<T>>>> + '_>

Implementors§