pub trait StreamUtils: Stream {
// Provided method
fn copied_multi_stream(self, i: usize) -> Vec<CopiedMultiStream<Self>>
where Self: Sized { ... }
}
Expand description
A Stream
blanket implementation trait that provides extra adaptors.
Provided Methods§
Sourcefn copied_multi_stream(self, i: usize) -> Vec<CopiedMultiStream<Self>>where
Self: Sized,
fn copied_multi_stream(self, i: usize) -> Vec<CopiedMultiStream<Self>>where
Self: Sized,
Copies values from the inner stream into multiple new streams. Polls from inner stream one
value and waits till all new streams have pulled a copied value.
Note that the internal buffer only buffers one value from the inner stream.
Not pulling from all new streams in sequence will result in an endless loop
polling a Pending
state. Essentially blocking.
When the underlying stream terminates, all new streams which have allready pulled the last value will be Pending
.
When all new streams have pulled the last value, all streams will terminate.