5个不稳定版本
0.3.1 | 2019年11月22日 |
---|---|
0.3.0 | 2019年11月22日 |
0.2.1 | 2019年11月19日 |
0.2.0 | 2019年11月19日 |
0.1.0 | 2019年11月18日 |
在异步类别中排名第1794
16KB
186 行
关于
简单的crate,提供了一个组合未来,当传递的未来完成时将取消。
许可证
许可方式任选其一
- Apache许可证,版本2.0 (LICENSE-APACHE 或 https://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 https://opensource.org/licenses/MIT)
。
lib.rs
:
此库为未来添加了一个组合器,使得一个未来在另一个成功完成时可以被取消。
可以使用 futures_01
功能启用对 futures 0.1 的支持
示例
use kyansel::cancellable;
let (tx, rx) = oneshot::channel::<()>();
//simulate a long future
let future =
delay(tokio::clock::now() + std::time::Duration::from_secs(1));
//make it cancellable
let cancellable = cancellable(future, rx);
//create the future that will trigger the cancellation
let canceller = ready(tx.send(()));
//run them at the same time (example)
let pair = join(cancellable, canceller);
//we `.await` the join, dropping the result of the canceller since we don't care
let (cancellable_result, _) = pair.await;
//the return is of type CancelledResult<(), Result<(), RecvError>>
let cancellable_result = cancellable_result.cancelled().unwrap().unwrap();
assert_eq!((), cancellable_result);
#
依赖
~14KB