Crates.io | raii-counter |
lib.rs | raii-counter |
version | 0.4.1 |
source | src |
created_at | 2018-05-13 13:48:32.579576 |
updated_at | 2021-03-09 19:24:28.858063 |
description | RAII Counter. |
homepage | https://github.com/DarrenTsung/raii-counter |
repository | https://github.com/DarrenTsung/raii-counter |
max_upload_size | |
id | 65195 |
size | 21,331 |
Rust type for a RAII Counter (counts number of held instances,
decrements count on Drop
), implemented with Arc<AtomicUsize>
.
Useful for tracking the number of holders exist for a handle, tracking the number of transactions that are in-flight, etc.
size
4 adds 4
to the count, and removes 4 when dropped.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);
License: MIT