diff --git a/futures-util/src/stream/stream/buffered.rs b/futures-util/src/stream/stream/buffered.rs index 2445a85c52..bdbfa0b6ae 100644 --- a/futures-util/src/stream/stream/buffered.rs +++ b/futures-util/src/stream/stream/buffered.rs @@ -1,4 +1,4 @@ -use crate::stream::{Fuse, FuturesOrdered, StreamExt}; +use crate::stream::{Fuse, FuturesOrdered, StreamExt, FusedStream}; use futures_core::future::Future; use futures_core::stream::Stream; use futures_core::task::{Context, Poll}; @@ -40,6 +40,16 @@ where } } +impl FusedStream for Buffered +where + St: FusedStream, + St::Item: Future, +{ + fn is_terminated(&self) -> bool { + self.stream.is_terminated() && self.in_progress_queue.is_empty() + } +} + impl Buffered where St: Stream,