pub trait ForkStream: Stream<Item: Clone> + Sized {
// Provided methods
fn fork(self) -> CloneStream<Self> { ... }
fn fork_with_limits(
self,
max_queue_size: usize,
max_clone_count: usize,
) -> CloneStream<Self> { ... }
}Expand description
Extension trait to make any Stream cloneable.
Provided Methods§
Sourcefn fork(self) -> CloneStream<Self>
fn fork(self) -> CloneStream<Self>
Creates a cloneable version of this stream.
use clone_stream::ForkStream;
use futures::{StreamExt, stream};
let stream = stream::iter(0..3).fork();
let mut clone = stream.clone();Sourcefn fork_with_limits(
self,
max_queue_size: usize,
max_clone_count: usize,
) -> CloneStream<Self>
fn fork_with_limits( self, max_queue_size: usize, max_clone_count: usize, ) -> CloneStream<Self>
Creates a cloneable stream with custom limits.
§Arguments
max_queue_size- Max items queued before panicmax_clone_count- Max clones before panic
§Panics
When limits are exceeded during operation.
use clone_stream::ForkStream;
use futures::stream;
let stream = stream::iter(0..3).fork_with_limits(100, 5);Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.