[−][src]Crate countme
A library to quickly get the live/total/max counts of allocated instances.
To use:
- Add a
Token<T>
to your type.Token<T>
is a RAII guard that manipulates counts innew
/drop
- Implement
CountMe
trait for your type, to define an atomic storage for the type-specific counts. - Optionally, override
CountMe::on_new_max
/CountMe::on_zero_live
hooks to, eg, print the counts. - Use
countme::get::<T>()
function to fetch the counts.
Example
#[derive(Default)] struct Widget { _t: countme::Token<Self>, } impl countme::CountMe for Widget { fn store() -> &'static countme::Store { static S: countme::Store = countme::Store::new(); &S } } let w1 = Widget::default(); let w2 = Widget::default(); let w3 = Widget::default(); drop(w1); let counts = countme::get::<Widget>(); assert_eq!(counts.live, 2); assert_eq!(counts.max, 3); assert_eq!(counts.total, 3);
Structs
Counts | |
Store | |
Token | Store this inside your struct as |
Traits
CountMe | Implement this for a type you wish to count. |
Functions
get | Returns the counts for the |