diff options
Diffstat (limited to 'benches/flatten_unordered.rs')
-rw-r--r-- | benches/flatten_unordered.rs | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/benches/flatten_unordered.rs b/benches/flatten_unordered.rs index 64d5f9a..517b281 100644 --- a/benches/flatten_unordered.rs +++ b/benches/flatten_unordered.rs @@ -5,9 +5,10 @@ use crate::test::Bencher; use futures::channel::oneshot; use futures::executor::block_on; -use futures::future::{self, FutureExt}; +use futures::future; use futures::stream::{self, StreamExt}; use futures::task::Poll; +use futures_util::FutureExt; use std::collections::VecDeque; use std::thread; @@ -34,18 +35,9 @@ fn oneshot_streams(b: &mut Bencher) { } }); - let mut flatten = stream::unfold(rxs.into_iter(), |mut vals| { - async { - if let Some(next) = vals.next() { - let val = next.await.unwrap(); - Some((val, vals)) - } else { - None - } - } - .boxed() - }) - .flatten_unordered(None); + let mut flatten = stream::iter(rxs) + .map(|recv| recv.into_stream().map(|val| val.unwrap()).flatten()) + .flatten_unordered(None); block_on(future::poll_fn(move |cx| { let mut count = 0; |