3个版本
0.1.4 | 2023年4月21日 |
---|---|
0.1.3 | 2023年4月21日 |
0.1.2 | 2023年4月1日 |
0.1.1 |
|
0.1.0 |
|
#600 in 内存管理
每月 41 次下载
12KB
208 代码行
mmap-buffer
(大多数情况下)对固定大小的基于文件的缓冲区的安全包装。
示例
use mmap_buffer::BackedBuffer;
fn main() -> Result<(), Box<dyn std::error::Error>> {
{
let mut buf = BackedBuffer::<i32>::new(100, "test.data")?;
// These changes will be reflected in the file
buf[10] = -10;
buf[20] = 27;
}
// Later, we can load the same array
let mut buf = BackedBuffer::<i32>::load("test.data")?;
assert_eq!(buf[10], -10);
assert_eq!(buf[20], 27);
Ok(())
}
lib.rs
:
mmap-backed
提供了一个(大多数情况下)安全的缓冲区,该缓冲区使用mmap
系统调用由文件支持。这些缓冲区不支持动态重新分配,因此它们是固定大小的。以下是一个示例
use mmap_buffer::BackedBuffer;
fn main() -> Result<(), Box<dyn std::error::Error>> {
{
let mut buf = BackedBuffer::<i32>::new(100, "test.data")?;
// These changes will be reflected in the file
buf[10] = -10;
buf[20] = 27;
}
// Later, we can load the same array
let mut buf = BackedBuffer::<i32>::load("test.data")?;
assert_eq!(buf[10], -10);
assert_eq!(buf[20], 27);
Ok(())
}
依赖关系
~280–500KB