#fixed-size #arena #reference #free-list #storage

fixed_free_list

具有可选键生命周期安全性和无宏唯一类型的大尺寸空闲列表

2个不稳定版本

0.2.0 2022年11月7日
0.1.0 2022年10月31日

#522 in 内存管理

MIT/Apache

27KB
414

fixed_free_list

具有可选键生命周期安全性和无宏唯一类型的大尺寸空闲列表。请参阅文档获取更多信息。

fixed_free_list所需的最小Rust版本是1.63.0。要开始使用fixed_free_list,请将以下内容添加到您的Cargo.toml

[dependencies]
fixed_free_list = "0.2"

为了获得更高的性能,请在nightly上启用unstable特性:

[dependencies]
fixed_free_list = { version = "0.2", features = ["unstable"] }

为了以性能为代价在开发时进行额外的内存安全验证,请启用strict特性:

[dependencies]
fixed_free_list = { version = "0.2", features = ["strict"] }

示例

一个简短的示例

use fixed_free_list::FixedFreeList;
let mut list: FixedFreeList<i32, 16> = FixedFreeList::new();
let key = list.alloc(8).unwrap();
assert_eq!(unsafe { *list.get_unchecked(key) }, 8);
let value = unsafe { list.get_mut_unchecked(key) };
*value = 2;
assert_eq!(unsafe { list.free_unchecked(key) }, 2);

安全性

此crate使用unsafe代码以提高性能。它已经通过miri进行了广泛的模糊测试,以确保其行为正确。

许可证

fixed_free_list根据您的要求,可双重许可

您的贡献

除非您明确声明,否则根据Apache-2.0许可证定义,您有意提交以包含在工作中的任何贡献都将根据上述方式双重许可,不附加任何额外条款或条件。

无运行时依赖