pub struct Fanout<Si1, Si2> { /* private fields */ }
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§
§impl<Si1, Si2> Fanout<Si1, Si2>
impl<Si1, Si2> Fanout<Si1, Si2>
pub fn get_pin_mut(
self: Pin<&mut Fanout<Si1, Si2>>
) -> (Pin<&mut Si1>, Pin<&mut Si2>)
pub fn get_pin_mut( self: Pin<&mut Fanout<Si1, Si2>> ) -> (Pin<&mut Si1>, Pin<&mut Si2>)
Get a pinned mutable reference to the inner sinks.
pub fn into_inner(self) -> (Si1, Si2)
pub fn into_inner(self) -> (Si1, Si2)
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§
§impl<Si1, Si2, Item> Sink<Item> for Fanout<Si1, Si2>
impl<Si1, Si2, Item> Sink<Item> for Fanout<Si1, Si2>
§type Error = <Si1 as Sink<Item>>::Error
type Error = <Si1 as Sink<Item>>::Error
The type of value produced by the sink when an error occurs.
§fn poll_ready(
self: Pin<&mut Fanout<Si1, Si2>>,
cx: &mut Context<'_>
) -> Poll<Result<(), <Fanout<Si1, Si2> as Sink<Item>>::Error>>
fn poll_ready( self: Pin<&mut Fanout<Si1, Si2>>, cx: &mut Context<'_> ) -> Poll<Result<(), <Fanout<Si1, Si2> as Sink<Item>>::Error>>
Attempts to prepare the
Sink
to receive a value. Read more§fn start_send(
self: Pin<&mut Fanout<Si1, Si2>>,
item: Item
) -> Result<(), <Fanout<Si1, Si2> as Sink<Item>>::Error>
fn start_send( self: Pin<&mut Fanout<Si1, Si2>>, item: Item ) -> Result<(), <Fanout<Si1, Si2> as Sink<Item>>::Error>
Begin the process of sending a value to the sink.
Each call to this function must be preceded by a successful call to
poll_ready
which returned Poll::Ready(Ok(()))
. Read moreimpl<'__pin, Si1, Si2> Unpin for Fanout<Si1, Si2>where
__Origin<'__pin, Si1, Si2>: Unpin,
Auto Trait Implementations§
impl<Si1, Si2> RefUnwindSafe for Fanout<Si1, Si2>where
Si1: RefUnwindSafe,
Si2: RefUnwindSafe,
impl<Si1, Si2> Send for Fanout<Si1, Si2>
impl<Si1, Si2> Sync for Fanout<Si1, Si2>
impl<Si1, Si2> UnwindSafe for Fanout<Si1, Si2>where
Si1: UnwindSafe,
Si2: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CompatExt for T
impl<T> CompatExt for T
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
fn into_sample(self) -> T
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T, Item> SinkExt<Item> for T
impl<T, Item> SinkExt<Item> for T
§fn with<U, Fut, F, E>(self, f: F) -> With<Self, Item, U, Fut, F>
fn with<U, Fut, F, E>(self, f: F) -> With<Self, Item, U, Fut, F>
Composes a function in front of the sink. Read more
§fn with_flat_map<U, St, F>(self, f: F) -> WithFlatMap<Self, Item, U, St, F>
fn with_flat_map<U, St, F>(self, f: F) -> WithFlatMap<Self, Item, U, St, F>
Composes a function in front of the sink. Read more
§fn sink_map_err<E, F>(self, f: F) -> SinkMapErr<Self, F>
fn sink_map_err<E, F>(self, f: F) -> SinkMapErr<Self, F>
Transforms the error returned by the sink.
§fn sink_err_into<E>(self) -> SinkErrInto<Self, Item, E>
fn sink_err_into<E>(self) -> SinkErrInto<Self, Item, E>
Map this sink’s error to a different error type using the
Into
trait. Read more§fn buffer(self, capacity: usize) -> Buffer<Self, Item>where
Self: Sized,
fn buffer(self, capacity: usize) -> Buffer<Self, Item>where
Self: Sized,
Adds a fixed-size buffer to the current sink. Read more
§fn flush(&mut self) -> Flush<'_, Self, Item> ⓘwhere
Self: Unpin,
fn flush(&mut self) -> Flush<'_, Self, Item> ⓘwhere
Self: Unpin,
Flush the sink, processing all pending items. Read more
§fn send(&mut self, item: Item) -> Send<'_, Self, Item> ⓘwhere
Self: Unpin,
fn send(&mut self, item: Item) -> Send<'_, Self, Item> ⓘwhere
Self: Unpin,
A future that completes after the given item has been fully processed
into the sink, including flushing. Read more
§fn feed(&mut self, item: Item) -> Feed<'_, Self, Item> ⓘwhere
Self: Unpin,
fn feed(&mut self, item: Item) -> Feed<'_, Self, Item> ⓘwhere
Self: Unpin,
A future that completes after the given item has been received
by the sink. Read more
§fn send_all<St, 'a>(&'a mut self, stream: &'a mut St) -> SendAll<'a, Self, St> ⓘ
fn send_all<St, 'a>(&'a mut self, stream: &'a mut St) -> SendAll<'a, Self, St> ⓘ
A future that completes after the given stream has been fully processed
into the sink, including flushing. Read more
§fn right_sink<Si1>(self) -> Either<Si1, Self> ⓘ
fn right_sink<Si1>(self) -> Either<Si1, Self> ⓘ
§fn poll_ready_unpin(
&mut self,
cx: &mut Context<'_>
) -> Poll<Result<(), Self::Error>>where
Self: Unpin,
fn poll_ready_unpin(
&mut self,
cx: &mut Context<'_>
) -> Poll<Result<(), Self::Error>>where
Self: Unpin,
A convenience method for calling
Sink::poll_ready
on Unpin
sink types.§fn start_send_unpin(&mut self, item: Item) -> Result<(), Self::Error>where
Self: Unpin,
fn start_send_unpin(&mut self, item: Item) -> Result<(), Self::Error>where
Self: Unpin,
A convenience method for calling
Sink::start_send
on Unpin
sink types.§fn poll_flush_unpin(
&mut self,
cx: &mut Context<'_>
) -> Poll<Result<(), Self::Error>>where
Self: Unpin,
fn poll_flush_unpin(
&mut self,
cx: &mut Context<'_>
) -> Poll<Result<(), Self::Error>>where
Self: Unpin,
A convenience method for calling
Sink::poll_flush
on Unpin
sink types.§fn poll_close_unpin(
&mut self,
cx: &mut Context<'_>
) -> Poll<Result<(), Self::Error>>where
Self: Unpin,
fn poll_close_unpin(
&mut self,
cx: &mut Context<'_>
) -> Poll<Result<(), Self::Error>>where
Self: Unpin,
A convenience method for calling
Sink::poll_close
on Unpin
sink types.