mirror of
https://github.com/tokio-rs/tokio.git
synced 2025-09-28 12:10:37 +00:00
stream: impl Extend for StreamMap (#4272)
## Motivation This allows `StreamMap` to be used with [`futures::stream::StreamExt::collect`][collect]. My use case is something like this: ```rust let stream_map: StreamMap<_, _> = things .into_iter() .map(|thing| make_stream(thing)) // iterator of futures .collect::<FuturesUnordered<_>>() // stream of streams .collect::<StreamMap<_, _>>() // combine all the inner streams into one .await; async fn make_stream(thing: Thing) -> impl Stream { ... } ``` [collect]: https://docs.rs/futures/0.3.17/futures/stream/trait.StreamExt.html#method.collect ## Solution Add `Extend` impl that delegates to the inner `Vec`.
This commit is contained in:
parent
1a423b3322
commit
3b339024f0
@ -585,6 +585,15 @@ where
|
||||
}
|
||||
}
|
||||
|
||||
impl<K, V> Extend<(K, V)> for StreamMap<K, V> {
|
||||
fn extend<T>(&mut self, iter: T)
|
||||
where
|
||||
T: IntoIterator<Item = (K, V)>,
|
||||
{
|
||||
self.entries.extend(iter);
|
||||
}
|
||||
}
|
||||
|
||||
mod rand {
|
||||
use std::cell::Cell;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user