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或手动禁用该功能。