Expand description
Sink that clones incoming items and forwards them to two sinks at the same time.
Backpressure from any downstream sink propagates up, which means that this sink can only process items as fast as its slowest downstream sink.
Implementations
sourceimpl<A: Sink, B: Sink> Fanout<A, B>
impl<A: Sink, B: Sink> Fanout<A, B>
sourcepub fn into_inner(self) -> (A, B)
pub fn into_inner(self) -> (A, B)
Consumes this combinator, returning the underlying sinks.
Note that this may discard intermediate state of this combinator, so care should be taken to avoid losing resources when this is called.
Trait Implementations
sourceimpl<A: Sink + Debug, B: Sink + Debug> Debug for Fanout<A, B> where
A::SinkItem: Debug,
B::SinkItem: Debug,
impl<A: Sink + Debug, B: Sink + Debug> Debug for Fanout<A, B> where
A::SinkItem: Debug,
B::SinkItem: Debug,
sourceimpl<A, B> Sink for Fanout<A, B> where
A: Sink,
A::SinkItem: Clone,
B: Sink<SinkItem = A::SinkItem, SinkError = A::SinkError>,
impl<A, B> Sink for Fanout<A, B> where
A: Sink,
A::SinkItem: Clone,
B: Sink<SinkItem = A::SinkItem, SinkError = A::SinkError>,
sourcefn start_send(
&mut self,
item: Self::SinkItem
) -> StartSend<Self::SinkItem, Self::SinkError>
fn start_send(
&mut self,
item: Self::SinkItem
) -> StartSend<Self::SinkItem, Self::SinkError>
Begin the process of sending a value to the sink. Read more
sourcefn poll_complete(&mut self) -> Poll<(), Self::SinkError>
fn poll_complete(&mut self) -> Poll<(), Self::SinkError>
Flush all output from this sink, if necessary. Read more
sourcefn close(&mut self) -> Poll<(), Self::SinkError>
fn close(&mut self) -> Poll<(), Self::SinkError>
A method to indicate that no more values will ever be pushed into this sink. Read more
sourcefn wait(self) -> Wait<Self> where
Self: Sized,
fn wait(self) -> Wait<Self> where
Self: Sized,
Creates a new object which will produce a synchronous sink. Read more
sourcefn with<U, F, Fut>(self, f: F) -> With<Self, U, F, Fut> where
F: FnMut(U) -> Fut,
Fut: IntoFuture<Item = Self::SinkItem>,
Fut::Error: From<Self::SinkError>,
Self: Sized,
fn with<U, F, Fut>(self, f: F) -> With<Self, U, F, Fut> where
F: FnMut(U) -> Fut,
Fut: IntoFuture<Item = Self::SinkItem>,
Fut::Error: From<Self::SinkError>,
Self: Sized,
Composes a function in front of the sink. Read more
sourcefn with_flat_map<U, F, St>(self, f: F) -> WithFlatMap<Self, U, F, St> where
F: FnMut(U) -> St,
St: Stream<Item = Self::SinkItem, Error = Self::SinkError>,
Self: Sized,
fn with_flat_map<U, F, St>(self, f: F) -> WithFlatMap<Self, U, F, St> where
F: FnMut(U) -> St,
St: Stream<Item = Self::SinkItem, Error = Self::SinkError>,
Self: Sized,
Composes a function in front of the sink. Read more
sourcefn sink_map_err<F, E>(self, f: F) -> SinkMapErr<Self, F> where
F: FnOnce(Self::SinkError) -> E,
Self: Sized,
fn sink_map_err<F, E>(self, f: F) -> SinkMapErr<Self, F> where
F: FnOnce(Self::SinkError) -> E,
Self: Sized,
Transforms the error returned by the sink.
sourcefn sink_from_err<E: From<Self::SinkError>>(self) -> SinkFromErr<Self, E> where
Self: Sized,
fn sink_from_err<E: From<Self::SinkError>>(self) -> SinkFromErr<Self, E> where
Self: Sized,
Map this sink’s error to any error implementing From
for this sink’s
Error
, returning a new sink. Read more
sourcefn buffer(self, amt: usize) -> Buffer<Self> where
Self: Sized,
fn buffer(self, amt: usize) -> Buffer<Self> where
Self: Sized,
Adds a fixed-size buffer to the current sink. Read more
sourcefn fanout<S>(self, other: S) -> Fanout<Self, S> where
Self: Sized,
Self::SinkItem: Clone,
S: Sink<SinkItem = Self::SinkItem, SinkError = Self::SinkError>,
fn fanout<S>(self, other: S) -> Fanout<Self, S> where
Self: Sized,
Self::SinkItem: Clone,
S: Sink<SinkItem = Self::SinkItem, SinkError = Self::SinkError>,
Fanout items to multiple sinks. Read more
sourcefn flush(self) -> Flush<Self> where
Self: Sized,
fn flush(self) -> Flush<Self> where
Self: Sized,
A future that completes when the sink has finished processing all pending requests. Read more
Auto Trait Implementations
impl<A, B> RefUnwindSafe for Fanout<A, B> where
A: RefUnwindSafe,
B: RefUnwindSafe,
<A as Sink>::SinkItem: RefUnwindSafe,
<B as Sink>::SinkItem: RefUnwindSafe,
impl<A, B> Send for Fanout<A, B> where
A: Send,
B: Send,
<A as Sink>::SinkItem: Send,
<B as Sink>::SinkItem: Send,
impl<A, B> Sync for Fanout<A, B> where
A: Sync,
B: Sync,
<A as Sink>::SinkItem: Sync,
<B as Sink>::SinkItem: Sync,
impl<A, B> Unpin for Fanout<A, B> where
A: Unpin,
B: Unpin,
<A as Sink>::SinkItem: Unpin,
<B as Sink>::SinkItem: Unpin,
impl<A, B> UnwindSafe for Fanout<A, B> where
A: UnwindSafe,
B: UnwindSafe,
<A as Sink>::SinkItem: UnwindSafe,
<B as Sink>::SinkItem: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more