ForkStream

Trait ForkStream 

Source
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§

Source

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();
Source

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 panic
  • max_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.

Implementors§

Source§

impl<BaseStream> ForkStream for BaseStream
where BaseStream: Stream<Item: Clone>,