#sink #tokio #future #async-write #io #byte #convert

tokio-into-sink

将 tokio::io::AsyncWrite 转换为 futures::Sink 以处理字节

1 个不稳定版本

0.1.0 2023年9月15日

#1332异步

Download history 18/week @ 2024-03-29 3/week @ 2024-04-05 27/week @ 2024-04-12 50/week @ 2024-05-24 33/week @ 2024-05-31 42/week @ 2024-06-07 8/week @ 2024-06-14 9/week @ 2024-06-21 1/week @ 2024-06-28

68 每月下载量

MIT/Apache

7KB
118

使用 AsyncWrite 作为 Sink<Item: AsRef<[u8]>.

此适配器生成一个接收器,将传递给它的每个值写入底层写入器。请注意,此函数消耗给定的写入器,返回一个包装版本。

use tokio_into_sink::IntoSinkExt as _;
use futures::{stream, StreamExt as _};
use std::io;

let stream = stream::iter(["hello", "world"]).map(io::Result::Ok);
let write = tokio::fs::File::create("/dev/null").await.unwrap();
let sink = write.into_sink();
stream.forward(sink).await.unwrap();

移植自 futures::io::AsyncWriteExt::into_sink.


lib.rs:

使用 AsyncWrite 作为 Sink<Item: AsRef<[u8]>.

此适配器生成一个接收器,将传递给它的每个值写入底层写入器。请注意,此函数消耗给定的写入器,返回一个包装版本。

use tokio_into_sink::IntoSinkExt as _;
use futures::{stream, StreamExt as _};
use std::io;

let stream = stream::iter(["hello", "world"]).map(io::Result::Ok);
let write = tokio::fs::File::create("/dev/null").await.unwrap();
let sink = write.into_sink();
stream.forward(sink).await.unwrap();

移植自 futures::io::AsyncWriteExt::into_sink.

依赖关系

~2–3MB
~47K SLoC