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版本。