6个版本

使用旧的Rust 2015

0.4.2 2024年1月26日
0.4.1 2022年9月8日
0.4.0 2019年12月6日
0.3.0 2019年11月19日
0.1.1 2018年6月29日

#1 in #inventory

Download history 41587/week @ 2024-04-17 42389/week @ 2024-04-24 52771/week @ 2024-05-01 54064/week @ 2024-05-08 58892/week @ 2024-05-15 55835/week @ 2024-05-22 91533/week @ 2024-05-29 125434/week @ 2024-06-05 118266/week @ 2024-06-12 131917/week @ 2024-06-19 160953/week @ 2024-06-26 116253/week @ 2024-07-03 124752/week @ 2024-07-10 118339/week @ 2024-07-17 131068/week @ 2024-07-24 118375/week @ 2024-07-31

517,083 每月下载量
115 个crate中(5个直接)使用

MIT 许可证

18KB
376

Census

Build status

该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);
}

无运行时依赖