2个不稳定版本
0.2.0 | 2022年11月7日 |
---|---|
0.1.0 | 2022年10月31日 |
#522 in 内存管理
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
根据您的要求,可双重许可
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
- Apache许可证,版本2.0 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
。
您的贡献
除非您明确声明,否则根据Apache-2.0许可证定义,您有意提交以包含在工作中的任何贡献都将根据上述方式双重许可,不附加任何额外条款或条件。