From 17e424112d53385142aa430641910c384c4cbe5a Mon Sep 17 00:00:00 2001 From: Ruben De Smet Date: Wed, 18 Dec 2019 06:01:29 +0100 Subject: [PATCH] time: impl Stream for DelayQueue (#1975) --- tokio/src/time/delay_queue.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tokio/src/time/delay_queue.rs b/tokio/src/time/delay_queue.rs index eb5000d2f..9e69bd3ee 100644 --- a/tokio/src/time/delay_queue.rs +++ b/tokio/src/time/delay_queue.rs @@ -730,6 +730,17 @@ impl Default for DelayQueue { } } +#[cfg(feature = "stream")] +impl futures_core::Stream for DelayQueue { + // DelayQueue seems much more specific, where a user may care that it + // has reached capacity, so return those errors instead of panicking. + type Item = Result, Error>; + + fn poll_next(self: Pin<&mut Self>, cx: &mut task::Context<'_>) -> Poll> { + DelayQueue::poll_expired(self.get_mut(), cx) + } +} + impl wheel::Stack for Stack { type Owned = usize; type Borrowed = usize;