futures-timer 0.1.1

Timeouts and intervals for futures.

futures-timer

Build Status

Documentation

A library for working with timers, timeouts, and intervals with the futures crate.

# Cargo.toml
[dependencies]
futures-timer = "0.1"

An example of using a Delay is:

extern crate futures;
extern crate futures_timer;

use std::time::Duration;

use futures::prelude::*;
use futures_timer::Delay;

fn main() {
    Delay::new(Duration::from_secs(3))
      .map(|()| println!("printed after three seconds"))
      .wait()
      .unwrap();
}

And using an Interval:

extern crate futures;
extern crate futures_timer;

use std::time::Duration;

use futures::prelude::*;
use futures_timer::Interval;

fn main() {
    Interval::new(Duration::from_secs(4))
      .take(4)
      .for_each(|()| Ok(println!("printed after three seconds")))
      .wait()
      .unwrap();
}

Or timing out a future

extern crate futures_timer;

use std::time::Duration;

use futures_timer::FutureExt;

fn main() {
    // create a future that will take at most 3 seconds to resolve
    let future = long_running_future()
      .timeout(Duration::from_secs(3));
}

License

This project is licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.