aboutsummaryrefslogtreecommitdiff
path: root/benches/flatten_unordered.rs
diff options
context:
space:
mode:
Diffstat (limited to 'benches/flatten_unordered.rs')
-rw-r--r--benches/flatten_unordered.rs18
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;