async-timeouts 0.1.1

An instrument to start async tasks after timeouts
Documentation
<!-- cargo-rdme start -->

# Async Timeouts Helper
It is a simple instrument to delay execution of an async task with the possibility
to stop timer or reset it with another time value. 

It is convinient to use this crate with [Notify] or different 
channels (i.e. [async_channel]).

## Example 
```rust
use std::time::Duration;
use async_timeout::Timeout;
use tokio::sync::Notify;

#[tokio::main]
async fn main() {
    let event = Arc::new(Notify::new());
    let timer = Instant::now();
    {
        let event = event.clone();
        // Let's notify our event after 3 seconds
        Timeout::set(Duration::from_secs(3), async move {
            event.notify_one();
        }).await;
    }
    event.notified().await;
    println!("{} seconds elapsed", timer.elapsed().as_secs());
}
```
[async_channel]: https://crates.io/crates/async-channel
[Notify]: https://docs.rs/tokio/1.44.2/tokio/sync/struct.Notify.html

<!-- cargo-rdme end -->

Take a look at one more complex [example].

[example]: https://altlinux.space/writers/async-timeouts/src/branch/main/examples/usage_with_channels.rs