3个版本

0.1.2 2023年11月29日
0.1.1 2023年11月29日
0.1.0 2023年11月29日

#1856 in 数据结构

MIT 许可证

9KB

延迟向量库

简介

延迟向量库提供了DeferredVec,这是一个Rust中的通用、懒加载的向量结构,非常适合高效资源管理和性能优化。由PUCPR的Afonso Miguel教授开发。

特性

  • 延迟:仅在明确访问时初始化向量。
  • 灵活性:与实现Clone特质的任何类型T兼容。
  • 自定义初始化:使用用户提供的函数进行向量初始化。

使用

使用定义初始状态的fetch_function实例化DeferredVec。向量保持未初始化状态(None),直到调用像getlen这样的方法,触发初始化。

示例

基本用法

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文件。

无运行时依赖项