#memory-pool #pool #memory #slice #chunk #wrap

slice-pool2

一个用于将切片用作内存池的库

2个版本

0.4.3 2023年7月18日
0.4.2 2023年7月16日

#735 in 内存管理

Download history 360/week @ 2024-03-16 846/week @ 2024-03-23 528/week @ 2024-03-30 776/week @ 2024-04-06 444/week @ 2024-04-13 608/week @ 2024-04-20 914/week @ 2024-04-27 498/week @ 2024-05-04 597/week @ 2024-05-11 477/week @ 2024-05-18 326/week @ 2024-05-25 350/week @ 2024-06-01 267/week @ 2024-06-08 338/week @ 2024-06-15 398/week @ 2024-06-22 177/week @ 2024-06-29

1,248 每月下载量
11 个Crates中使用 (通过 retour)

MIT 许可证

18KB
387

slice-pool

一个将切片用作内存池的Rust库。

文档

https://docs.rs/slice-pool2

安装

将以下内容添加到您的 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]);

无运行时依赖项