2 个版本
0.1.1 | 2022 年 9 月 26 日 |
---|---|
0.1.0 | 2022 年 9 月 26 日 |
#1016 in 异步
每月 <36 次下载
11KB
161 代码行
可完成
一个 Future
值,一旦显式完成,就会解析,可能来自不同的线程或任务,类似于 Java 的 CompletableFuture
。
目前,此功能使用 Mutex
从 parking_lot
crate 实现。
示例
创建一个不完整的 ControlledFuture
并使用 completer 显式完成它
let (future, completer) = ControlledFuture::<i32>::new();
completer.complete(5).unwrap();
assert_eq!(block_on(future), Ok(5));
创建一个初始状态为完成的 ControlledFuture
,可以立即解析
assert_eq!(block_on(ControlledFuture::new_completed(10)), Ok(10));
lib.rs
:
一个 Future
值,一旦显式完成,就会解析,可能来自不同的线程或任务,类似于 Java 的 CompletableFuture
。
目前,此功能使用 Mutex
从 parking_lot
crate 实现。
示例
创建一个不完整的 ControlledFuture
并使用 completer 显式完成它
let (future, completer) = ControlledFuture::<i32>::new();
completer.complete(5).unwrap();
assert_eq!(block_on(future), Ok(5));
创建一个初始状态为完成的 ControlledFuture
,可以立即解析
assert_eq!(block_on(ControlledFuture::new_completed(10)), Ok(10));
依赖项
~1–6.5MB
~36K SLoC