# async-timer
[](https://dev.azure.com/DoumanAsh/async-timer/_build/latest?definitionId=1&branchName=master)
[](https://crates.io/crates/async-timer)
[](https://docs.rs/crate/async-timer/)
[](https://deps.rs/crate/async-timer)
Timer facilities for Rust's async story
Minimal Rust version: async/await
## Timed
```rust
#![feature(async_await)]
async fn job() {
}
async fn do_job() {
let work = unsafe {
async_timer::Timed::platform_new_unchecked(job(), core::time::Duration::from_secs(1))
};
match work.wait().await {
Ok(_) => println!("I'm done!"),
//You can `Expired::retry` to resume it
Err(expired) => println!("Job expired: {}", expired),
}
}
```
## Interval
```rust
#![feature(async_await)]
async fn job() {
}
async fn do_a_while() {
let mut times: u8 = 0;
let mut interval = async_timer::Interval::platform_new(core::time::Duration::from_secs(1));
while times < 5 {
job().await;
interval = interval.next().await;
times += 1;
}
}
```