3个版本
0.1.2 | 2023年11月29日 |
---|---|
0.1.1 | 2023年11月29日 |
0.1.0 | 2023年11月29日 |
#1856 in 数据结构
9KB
延迟向量库
简介
延迟向量库提供了DeferredVec
,这是一个Rust中的通用、懒加载的向量结构,非常适合高效资源管理和性能优化。由PUCPR的Afonso Miguel教授开发。
特性
- 延迟:仅在明确访问时初始化向量。
- 灵活性:与实现
Clone
特质的任何类型T
兼容。 - 自定义初始化:使用用户提供的函数进行向量初始化。
使用
使用定义初始状态的fetch_function
实例化DeferredVec。向量保持未初始化状态(
None
),直到调用像get
或len
这样的方法,触发初始化。
示例
基本用法
let mut deferred_vector = DeferredVec::new(|| vec![1, 2, 3]);
assert_eq!(deferred_vector.is_deferred(), true);
获取向量数据
assert_eq!(deferred_vector.len(), 3);
检查向量是否未延迟
let initialized_vector = deferred_vector.get();
assert_eq!(deferred_vector.is_deferred(), false);
测试
包括针对懒加载初始化和基本向量操作的单元测试。
免责声明
按现状提供,不提供任何保证。在生产使用之前请彻底测试。
作者
阿方索·米格尔教授 - PUCPR。
许可证
MIT许可证 - 详细信息请参阅LICENSE文件。