2个版本
0.4.3 | 2023年7月18日 |
---|---|
0.4.2 | 2023年7月16日 |
#735 in 内存管理
1,248 每月下载量
在 11 个Crates中使用 (通过 retour)
18KB
387 行
slice-pool
一个将切片用作内存池的Rust库。
文档
安装
将以下内容添加到您的 Cargo.toml
[dependencies]
slice-pool2 = "0.4.2"
lib.rs
:
此crate提供将可切片类型作为池的底层内存的功能。
分配的内存可以是任何类型的可变切片。
use slice_pool::sync::SlicePool;
let values = vec![10, 20, 30, 40, 50, 60, 70, 80, 90, 100];
let mut memory = SlicePool::new(values);
assert_eq!(memory.len(), 10);
// Not enough memory available (only 10 elements)
assert!(memory.alloc(11).is_none());
let mut first = memory.alloc(2).unwrap();
assert_eq!(*first, [10, 20]);
first[1] = 15;
assert_eq!(*first, [10, 15]);
let mem2 = memory.alloc(5).unwrap();
assert_eq!(*mem2, [30, 40, 50, 60, 70]);