Module async_io

Module async_io 

Source
Expand description

Create deadlines from Instant.

§Features

This module is empty when no features are enabled. To implement deadlines for Instant you can enable one of the following features:

  • async-io: use this when using the async-std or smol runtimes.
  • tokio: use this when using the tokio runtime.

§Examples

use std::time::Instant;
use async_std::prelude::*;
use stop_token::prelude::*;
use stop_token::StopToken;

struct Event;

async fn do_work(work: impl Stream<Item = Event> + Unpin, deadline: Instant) {
    let mut work = work.timeout_at(deadline);
    while let Some(Ok(event)) = work.next().await {
        process_event(event).await
    }
}

async fn process_event(_event: Event) {
}