[−][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
CountMetrait for your type, to define an atomic storage for the type-specific counts. - Optionally, override
CountMe::on_new_max/CountMe::on_zero_livehooks to, eg, print the counts. - Use
countme::get::<T>()function to fetch the counts.
To disable the counting, use the no-op feature of the crate.
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 |