7 个版本

0.2.0 2024 年 3 月 14 日
0.1.6 2022 年 7 月 30 日

#125性能分析

MIT 许可证

11KB
197

peekbufread

允许窥视任意 std::io::Read 的数据,并提供对检查点的支持。这两个功能都通过缓冲原始流的部分来实现。

此crate故意保持非常简单:它只提供结构体 PeekRead,没有其他功能。

构建 & 测试

git clone https://github.com/codefionn/peekbufread.git
cd peekbufread
cargo test
cargo bench

窥视

允许在不消耗内容的情况下窥视数据。

检查点

允许程序忘记已经读取了流中的数据。

检查点支持是可选的,但默认包含,可以通过以下方式禁用:

peekbufread = { version = "*", default-features = false }

这使crate的性能更快(此问题目前正在调查中)。


lib.rs:

允许窥视任意 std::io::Read 的数据,并提供对检查点的支持。这两个功能都通过缓冲原始流的部分来实现。

此crate故意保持非常简单:它只提供结构体 PeekRead,没有其他功能。

示例

use peekbufread::PeekRead;
use std::io::Read;

let test = b"hello, world";
let mut read = PeekRead::new(test.as_ref());

let mut buf = [0; 12];
read.peek(&mut buf).ok();

let mut buf = [0; 12];
read.read(&mut buf).ok();

无运行时依赖