16 个稳定版本
1.4.10 | 2023 年 3 月 17 日 |
---|---|
1.4.8 | 2023 年 2 月 14 日 |
1.4.6 | 2022 年 7 月 4 日 |
1.3.0 | 2022 年 2 月 22 日 |
1.0.2 | 2019 年 6 月 27 日 |
#97 在 数据结构
8,387 每月下载量
在 2 crates 中使用
49KB
924 代码行
queue-file
queue-file 是一个快速、事务性、基于文件的 FIFO。
从队列中添加或删除元素的操作是一个 O(1) 操作,并且是原子的。默认情况下写入是同步的;在操作返回之前,数据将被写入磁盘。
queue-file crate 是 Square, Inc. 的 Tape2 中的 QueueFile
类的功能完整且二进制兼容的移植。请在此处查看原始项目 here。
用法
要使用 queue-file
,首先将此添加到您的 Cargo.toml
[dependencies]
queue-file = "1"
示例
use queue_file::QueueFile;
fn main() {
let mut qf = QueueFile::open("example.qf")
.expect("cannot open queue file");
qf.add("ELEMENT #1".as_bytes()).expect("add failed");
qf.add("ELEMENT #2".as_bytes()).expect("add failed");
qf.add("ELEMENT #3".as_bytes()).expect("add failed");
qf.remove().expect("remove failed");
for (index, elem) in qf.iter().enumerate() {
println!(
"{}: {} bytes -> {}",
index,
elem.len(),
std::str::from_utf8(&elem).unwrap_or("<invalid>")
);
}
qf.clear().expect("clear failed");
}
MSRV
当前 MSRV 是 1.58.1
许可证
本项目采用 Apache 2.0 许可证。
依赖
~2MB
~40K SLoC