6个版本
使用旧的Rust 2015
0.4.2 | 2024年1月26日 |
---|---|
0.4.1 | 2022年9月8日 |
0.4.0 | 2019年12月6日 |
0.3.0 |
|
0.1.1 | 2018年6月29日 |
#1 in #inventory
517,083 每月下载量
在 115 个crate中(5个直接)使用
18KB
376 行
Census
该crate允许创建一个跟踪给定类型实例的库存对象。
它在tantivy中用于获取所有仍在索引中使用的文件的准确列表,并避免对它们进行垃圾回收。
此 TrackedObject<T>
实例包含一些引用计数逻辑,以确保对象在最后一个实例被丢弃时从库存中删除。
示例
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);
}