#len #collection #lock #cache #mutex #rw-lock #parking-lot

len-caching-lock

原子缓存len(),用于与包含在parking_lot Mutex和RwLock中的集合一起使用

显示crate…

1个不稳定版本

使用旧的Rust 2015

0.1.1 2021年2月28日

9 in #parking-lot


9个crate中使用(通过验证

GPL-3.0许可协议

13KB
244

此crate允许自动缓存T.len(),并提供一个API,允许替换 MutexRwLock,以适应大多数常见用例。

此crate为以下类型实现了Lenstd::collections::{VecDeque, LinkedList, HashMap, BTreeMap, HashSet, BTreeSet, BinaryHeap}

示例

extern crate len_caching_lock;
use len_caching_lock::LenCachingMutex;

fn main() {
   	let vec: Vec<i32> = Vec::new();
   	let len_caching_mutex = LenCachingMutex::new(vec);
   	assert_eq!(len_caching_mutex.lock().len(), len_caching_mutex.load_len());
   	len_caching_mutex.lock().push(0);
   	assert_eq!(1, len_caching_mutex.load_len());
   }
   ```

依赖项

~0.6–1MB
~14K SLoC