1 个不稳定版本
| 0.1.0 | 2023年5月30日 |
|---|
#2984 在 Rust模式
被 push_decode 使用
44KB
794 行
轻量级通用IO
错误更少,无std IO特质基于其错误类型进行泛型。
这是一个简化版的 genio,仅包含缓冲特质。
相对于 std 的优势
no_std- 不需要操作系统- 错误关联类型更灵活
- 错误更少 - 没有
read和write方法,这些方法常被误认为是read_all或write_all
相对于 genio 的优势
- 更简单
- 处理未初始化字节的
unsafe更少(目前没有,未来可能会改变) - 大多数IO使用都需要一些缓冲
- 错误更少 - 没有
read和write方法,这些方法常被误认为是read_all或write_all - 没有
FlushError使得错误处理更简单
目标受众
主要是序列化库及其消费者。也可以用于不需要精确控制 read 和 write 调用的简单协议。
可能不应该用于底层。
使用概述
BufRead 特质与 std 中的相似。最大的区别是错误类型和缺少错误易发性的 read 方法。由于它在 std::io::BufReader 和原始 std 类型上实现,因此在大多数情况下,您可以像使用 std::io::BufRead 一样使用它。还有一个额外的优势,即可以静态证明从 &[u8] 读取不会失败(但它可以返回 UnexpectedEnd)。
同样,BufWrite 只是带有错误关联的 std::io::Write,缺少 write 方法。它仍然需要写入是缓冲的或快速的,因为这是大多数编码器需要的。
功能
std- 与标准库的集成:实现和适配器alloc- 需要分配的额外功能
MSRV
该软件包旨在保持保守的MSRV,并在提供显著好处时才将其提升至最新Debian稳定版中的版本。目前测试的MSRV为1.41.1(Debian旧稳定版),但由于其简单性,它可能在更低的版本上也能运行。
某些功能可能仅在较新的Rust版本中可用。因此,建议尽可能使用最新的Rust版本。