#![warn(rust_2018_idioms)] #![cfg(feature = "full")] use tokio::time::{self, throttle}; use tokio_test::*; use std::time::Duration; #[tokio::test] async fn usage() { time::pause(); let mut stream = task::spawn(throttle( Duration::from_millis(100), futures::stream::repeat(()), )); assert_ready!(stream.poll_next()); assert_pending!(stream.poll_next()); time::advance(Duration::from_millis(90)).await; assert_pending!(stream.poll_next()); time::advance(Duration::from_millis(101)).await; assert!(stream.is_woken()); assert_ready!(stream.poll_next()); }