3 个版本 (破坏性更新)
0.3.0 | 2023 年 12 月 10 日 |
---|---|
0.2.0 | 2023 年 12 月 9 日 |
0.1.0 | 2023 年 12 月 6 日 |
0.0.0 |
|
#2271 in Rust 模式
61 个月下载量
在 3 crates 中使用
8KB
62 行
I/O 适配器
此 crate 提供了在标准库中组合可写特征的适配器。以下转换可用
fmt::Write
->io::Write
io::Write
->hash::Hasher
使用场景
假设你正在编写一个函数,该函数以零分配方式生成可读数据。最佳接口看起来像这样
fn foo<Out: fmt::Write>(mut output: Out, ...) {
// Do stuff
writeln!(output, "My computation: {result}").unwrap();
}
注意使用了 fmt::Write
:使用此特征提供了类型系统保证,即写入的数据是有效的 UTF-8,因此它应该优于 io::Write
。
现在 API 的用户可以将数据收集到 String
中,提供自己的 fmt::Write
实现,等等。你会遇到的问题是,如果你想将此函数的输出发送到 stdout:没有内置的方法可以做到这一点!这正是这个 crate 出现的原因,它提供了一个适配器,因此你可以编写以下内容
foo(&mut io::stdout().write_adapter());