1 个不稳定版本
0.1.0 | 2022年2月21日 |
---|
#1810 在 异步
11KB
95 代码行
Crate repeating_future
此 crate 允许您通过在准备就绪时提供 futures 的结果并反复调用它来无限期地产生结果,将任何 [Future] 转换为 futures::Stream。
使用默认启用的功能 streams
,此 crate 提供了一个方便的 [FutureStream],它可以将任何 [Future] 转换为 futures::Stream 并流式传输该 [Future] 的结果,直到基础 future 失败。查看 stream-example 以了解如何使生活变得更加简单。这是一个少于 50 行的文件,它将 rumqttc 完全转换为 futures::Stream。
禁用功能 streams
时,它定义了辅助工具和最终 [RepeatingFuture],它构建一个从对象的函数中获取 [Future] 并转发其结果的 [Future]。当基础函数是 Poll::Ready 时,再次获取函数-future。它可以用于从仅在每个调用中返回一个结果的 async
-函数中流式传输项目。
此 crate 最初是为了扩展出色的 rumqttc MQTT 客户端以支持 futures::Stream 而创建的。因此,所有示例目前都是为了这个目的。
用法
将此 crate 添加到您的 Cargo.toml
repeating_future = "0.1.0"
并在您的 main.rs 中使用它
use repeating_future::FutureStream;
简单示例
尝试 cargo run --example manual
或 cargo run --example stream
依赖项
~0.8–16MB
~161K SLoC