6个版本 (3个破坏性更新)
0.4.1 | 2021年3月9日 |
---|---|
0.3.1 | 2021年3月9日 |
0.2.1 | 2019年10月1日 |
0.2.0 | 2018年7月12日 |
0.1.1 | 2018年5月14日 |
#825 在 数据库接口 中
每月1,872 次下载
在 4 个Crates中使用(通过 wasm-rgame)
20KB
410 行
raii-counter
raii-counter 是一个RAII计数器的Rust类型(计算保持实例的数量,在Drop
时减少计数),使用Arc<AtomicUsize>
实现。
可用于跟踪句柄的持有者数量,跟踪正在进行的交易数量等。
附加功能
- 计数器可以有大小,例如,具有
size
4的计数器会将计数增加4,并在丢弃时减去4。
演示
extern crate raii_counter;
use raii_counter::Counter;
let counter = Counter::new();
assert_eq!(counter.count(), 1);
let weak = counter.downgrade();
assert_eq!(weak.count(), 0);
{
let _counter1 = weak.spawn_upgrade();
assert_eq!(weak.count(), 1);
let _counter2 = weak.spawn_upgrade();
assert_eq!(weak.count(), 2);
}
assert_eq!(weak.count(), 0);
许可证:MIT
lib.rs
:
raii-counter 是一个RAII计数器的Rust类型(计算保持实例的数量,在Drop
时减少计数),使用Arc<AtomicUsize>
实现。
可用于跟踪句柄的持有者数量,跟踪正在进行的交易数量等。
附加功能
Counter
可以有大小,例如,具有size
4的Counter
会将计数增加4,并在丢弃时减去4。NotifyHandle
可用于高效的条件检查,例如,如果您想等待没有在进行的交易,请参阅:CounterBuilder::create_notify
/WeakCounterBuilder::create_notify
和NotifyHandle::wait_until_condition
。
演示
extern crate raii_counter;
use raii_counter::Counter;
let counter = Counter::builder().build();
assert_eq!(counter.count(), 1);
let weak = counter.downgrade();
assert_eq!(weak.count(), 0);
{
let _counter1 = weak.spawn_upgrade();
assert_eq!(weak.count(), 1);
let _counter2 = weak.spawn_upgrade();
assert_eq!(weak.count(), 2);
}
assert_eq!(weak.count(), 0);
依赖项
~315–780KB
~18K SLoC