cancellation-token 0.1.1

A Rust implementation of C#'s CancellationToken API.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use cancellation_token::{CancellationToken, CancellationTokenSource, MayBeCanceled};
use rt_local::runtime::core::main;

#[main]
async fn main() {
    let cts = CancellationTokenSource::new();
    if cancelable_function(&cts.token()).await.is_err() {
        println!("canceled");
    }
}

async fn cancelable_function(ct: &CancellationToken) -> MayBeCanceled<u32> {
    for _ in 0..100 {
        ct.run(heavy_work()).await?;
    }
    Ok(100)
}
async fn heavy_work() {}