pub fn select_all<I>(streams: I) -> SelectAll<I::Item>
where
    I: IntoIterator,
    I::Item: Stream + Unpin,
{
    let set = SelectAll::new();

    for stream in streams {
        set.push(stream);
    }

    assert_stream::<<I::Item as Stream>::Item, _>(set)
}
Convert a list of streams into a `Stream` of results from the streams.

This essentially takes a list of streams (e.g. a vector, an iterator, etc.)
and bundles them together into a single stream.
The stream will yield items as they become available on the underlying
streams internally, in the order they become available.

Note that the returned set can also be used to dynamically push more
streams into the set as they become available.

This function is only available when the `std` or `alloc` feature of this
library is activated, and it is activated by default.
futures-util/src/stream/select_all.rs