2个不稳定版本
0.2.0 | 2024年1月1日 |
---|---|
0.1.0 | 2023年12月2日 |
#785 in 异步
41KB
1K SLoC
Async Monad
该库旨在在异步控制流中使用像 core::Result
和 core::Option
这样的monad。
包装的Async Monad
async_monad::async_wrapped
提供了 Result
和 Option
的内部异步版本。这些monad将 Future
保存其中,这使得您可以使用它们同步并一次性等待。
通常,所有对它们的操作都会创建一个新的 Future
,移动和克隆所有相关数据,因此性能(某种程度上)会比手动处理差。其余的方法(标记为 async
)将消耗 Future
并生成一些结果。
异步标准Monad操作
async_monad::async_traits
提供了std api的异步版本,它接受 Future
和异步函数。
该实用工具隐藏在 async_trait
功能后面,该功能默认启用。由于它使用了自Rustc 1.75以来稳定的特性,您必须通过 rustup
更新rustc或手动禁用该功能。