Skip to content

Commit c07cbfc

Browse files
svartalfcramertj
authored andcommitted
Add FusedStream implementation for TryFilterMap
1 parent 572a3f6 commit c07cbfc

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

futures-util/src/try_stream/try_filter_map.rs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use core::pin::Pin;
22
use futures_core::future::{TryFuture};
3-
use futures_core::stream::{Stream, TryStream};
3+
use futures_core::stream::{Stream, TryStream, FusedStream};
44
use futures_core::task::{Context, Poll};
55
use futures_sink::Sink;
66
use pin_utils::{unsafe_pinned, unsafe_unpinned};
@@ -61,6 +61,16 @@ impl<St, Fut, F> TryFilterMap<St, Fut, F> {
6161
}
6262
}
6363

64+
impl<St, Fut, F, T> FusedStream for TryFilterMap<St, Fut, F>
65+
where St: TryStream + FusedStream,
66+
Fut: TryFuture<Ok = Option<T>, Error = St::Error>,
67+
F: FnMut(St::Ok) -> Fut,
68+
{
69+
fn is_terminated(&self) -> bool {
70+
self.pending.is_none() && self.stream.is_terminated()
71+
}
72+
}
73+
6474
impl<St, Fut, F, T> Stream for TryFilterMap<St, Fut, F>
6575
where St: TryStream,
6676
Fut: TryFuture<Ok = Option<T>, Error = St::Error>,

0 commit comments

Comments
 (0)