[][src]Module runtime::time

Types and Functions for time-related operations.

This module provides primitives for setting asynchronous timeouts, intervals, and delays.

Organization

  • Delay and Interval provide functionality for setting delays and intervals.
  • FutureExt extends Futures with the ability to time-out.
  • Other types are return or parameter types for various methods in this module

Examples

Delay execution for three seconds

use runtime::time::Delay;
use std::time::{Duration, Instant};

let start = Instant::now();
let now = Delay::new(Duration::from_secs(3)).await;

let elapsed = now - start;
println!("elapsed: {}s", elapsed.as_secs());

Emit an event every two seconds

use runtime::time::Interval;
use std::time::{Duration, Instant};

let start = Instant::now();

let mut interval = Interval::new(Duration::from_secs(2));
while let Some(now) = interval.next().await {
    let elapsed = now - start;
    println!("elapsed: {}s", elapsed.as_secs());
}

Structs

Delay

A future representing the notification that an elapsed duration has occurred.

Interval

A stream representing notifications at a fixed interval.

Timeout

A future returned by methods in the FutureExt trait.

TimeoutAsyncRead

A stream returned by methods in the StreamExt trait.

TimeoutStream

A stream returned by methods in the StreamExt trait.

Traits

AsyncReadExt

Extend AsyncRead with methods to time out execution.

FutureExt

Extend Future with methods to time out execution.

StreamExt

Extend Stream with methods to time out execution.