0.4.2 - This version may not be safe as it has not been updated for a long time. Find out if your coding project uses this component and get notified of any reported security vulnerabilities with Meterian-X Open Source Security Platform
Maintain your licence declarations and avoid unwanted licences to protect your IP the way you intended.
MIT - MIT LicenseThis crate makes it possible to create an inventory object that keeps track of instances of a given type.
It is used in tantivy to get an accurate list of all of the files that are still in use by the index, and avoid garbage collecting them.
This TrackedObject<T>
instance include some reference counting logic to ensure that
the object is removed from the inventory once the last instance is dropped.
extern crate census;
use census::{Inventory, TrackedObject};
fn main() {
let inventory = Inventory::new();
// Each object tracked needs to be registered explicitely in the Inventory.
// A `TrackedObject<T>` wrapper is then returned.
let one = inventory.track("one".to_string());
let two = inventory.track("two".to_string());
// A snapshot of the list of living instances can be obtained...
// (no guarantee on their order)
let living_instances: Vec<TrackedObject<String>> = inventory.list();
assert_eq!(living_instances.len(), 2);
}