future-bool

Crates.iofuture-bool
lib.rsfuture-bool
version0.1.1
sourcesrc
created_at2021-08-01 20:57:07.255975
updated_at2021-08-01 21:15:07.765384
descriptionA bool one can await the changes.
homepage
repositoryhttps://github.com/devalain/future-bool
max_upload_size
id430152
size18,772
(devalain)

documentation

README

future-bool

crate docs

A bool one can await the changes.

Example usage

use future_bool::FutureBool;

#[tokio::main]
async fn main() {
    let run = FutureBool::new(false);
    let run_clone = run.clone();

    let task = tokio::spawn(async move {
        loop {
            // If run changes to false before `some_async_fn` is terminated, 
            // it will be interrupted.
            tokio::select! {
                _ = run_clone.wait_false() => break,
                _ = some_async_fn() => {}
            };
        }
    });

    // ... some other task sets run to false with 
    // `run.unset()`
    task.await;
}
Commit count: 15

cargo fmt