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§
Source§impl<Si1, Si2> Fanout<Si1, Si2>
 
impl<Si1, Si2> Fanout<Si1, Si2>
Sourcepub 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.
Sourcepub 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§
Source§impl<Si1, Si2, Item> Sink<Item> for Fanout<Si1, Si2>
 
impl<Si1, Si2, Item> Sink<Item> for Fanout<Si1, Si2>
Source§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.
Source§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 moreSource§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
    <PinnedFieldsOfHelperStruct<__Origin<'__pin, Si1, Si2>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
Auto Trait Implementations§
impl<Si1, Si2> Freeze for Fanout<Si1, Si2>
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<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
    T: Real + Zero + Arithmetics + Clone,
    Swp: WhitePoint<T>,
    Dwp: WhitePoint<T>,
    D: AdaptFrom<S, Swp, Dwp, T>,
 
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
    T: Real + Zero + Arithmetics + Clone,
    Swp: WhitePoint<T>,
    Dwp: WhitePoint<T>,
    D: AdaptFrom<S, Swp, Dwp, T>,
Source§fn adapt_into_using<M>(self, method: M) -> Dwhere
    M: TransformMatrix<T>,
 
fn adapt_into_using<M>(self, method: M) -> Dwhere
    M: TransformMatrix<T>,
Convert the source color to the destination color using the specified
method.
Source§fn adapt_into(self) -> D
 
fn adapt_into(self) -> D
Convert the source color to the destination color using the bradford
method by default.
Source§impl<T, Res> Apply<Res> for Twhere
    T: ?Sized,
 
impl<T, Res> Apply<Res> for Twhere
    T: ?Sized,
Source§impl<T, C> ArraysFrom<C> for Twhere
    C: IntoArrays<T>,
 
impl<T, C> ArraysFrom<C> for Twhere
    C: IntoArrays<T>,
Source§fn arrays_from(colors: C) -> T
 
fn arrays_from(colors: C) -> T
Cast a collection of colors into a collection of arrays.
Source§impl<T, C> ArraysInto<C> for Twhere
    C: FromArrays<T>,
 
impl<T, C> ArraysInto<C> for Twhere
    C: FromArrays<T>,
Source§fn arrays_into(self) -> C
 
fn arrays_into(self) -> C
Cast this collection of arrays into a collection of colors.
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
Source§impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
    T: FromCam16Unclamped<WpParam, U>,
 
impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
    T: FromCam16Unclamped<WpParam, U>,
Source§type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
 
type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
The number type that’s used in 
parameters when converting.Source§fn cam16_into_unclamped(
    self,
    parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>,
) -> T
 
fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T
Converts 
self into C, using the provided parameters.Source§impl<T, C> ComponentsFrom<C> for Twhere
    C: IntoComponents<T>,
 
impl<T, C> ComponentsFrom<C> for Twhere
    C: IntoComponents<T>,
Source§fn components_from(colors: C) -> T
 
fn components_from(colors: C) -> T
Cast a collection of colors into a collection of color components.
Source§impl<T> Downcast for Twhere
    T: Any,
 
impl<T> Downcast for Twhere
    T: Any,
Source§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.Source§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.Source§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.Source§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.Source§impl<T> DowncastSync for T
 
impl<T> DowncastSync for T
Source§impl<T> FromAngle<T> for T
 
impl<T> FromAngle<T> for T
Source§fn from_angle(angle: T) -> T
 
fn from_angle(angle: T) -> T
Performs a conversion from 
angle.Source§impl<T, U> FromStimulus<U> for Twhere
    U: IntoStimulus<T>,
 
impl<T, U> FromStimulus<U> for Twhere
    U: IntoStimulus<T>,
Source§fn from_stimulus(other: U) -> T
 
fn from_stimulus(other: U) -> T
Converts 
other into Self, while performing the appropriate scaling,
rounding and clamping.Source§impl<T> Instrument for T
 
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
 
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
 
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T, U> IntoAngle<U> for Twhere
    U: FromAngle<T>,
 
impl<T, U> IntoAngle<U> for Twhere
    U: FromAngle<T>,
Source§fn into_angle(self) -> U
 
fn into_angle(self) -> U
Performs a conversion into 
T.Source§impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
    T: Cam16FromUnclamped<WpParam, U>,
 
impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
    T: Cam16FromUnclamped<WpParam, U>,
Source§type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
 
type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
The number type that’s used in 
parameters when converting.Source§fn into_cam16_unclamped(
    self,
    parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>,
) -> T
 
fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T
Converts 
self into C, using the provided parameters.Source§impl<T, U> IntoColor<U> for Twhere
    U: FromColor<T>,
 
impl<T, U> IntoColor<U> for Twhere
    U: FromColor<T>,
Source§fn into_color(self) -> U
 
fn into_color(self) -> U
Convert into T with values clamped to the color defined bounds Read more
Source§impl<T, U> IntoColorUnclamped<U> for Twhere
    U: FromColorUnclamped<T>,
 
impl<T, U> IntoColorUnclamped<U> for Twhere
    U: FromColorUnclamped<T>,
Source§fn into_color_unclamped(self) -> U
 
fn into_color_unclamped(self) -> U
Convert into T. The resulting color might be invalid in its color space Read more
Source§impl<T> IntoStimulus<T> for T
 
impl<T> IntoStimulus<T> for T
Source§fn into_stimulus(self) -> T
 
fn into_stimulus(self) -> T
Converts 
self into T, while performing the appropriate scaling,
rounding and clamping.Source§impl<T, Item> SinkExt<Item> for T
 
impl<T, Item> SinkExt<Item> for T
Source§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
Source§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
Source§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.
Source§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 moreSource§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
Source§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
Source§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
Source§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
Source§fn send_all<'a, St>(&'a mut self, stream: &'a mut St) -> SendAll<'a, Self, St> ⓘ
 
fn send_all<'a, St>(&'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
Source§fn right_sink<Si1>(self) -> Either<Si1, Self> ⓘ
 
fn right_sink<Si1>(self) -> Either<Si1, Self> ⓘ
Source§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.Source§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.Source§impl<T, C> TryComponentsInto<C> for Twhere
    C: TryFromComponents<T>,
 
impl<T, C> TryComponentsInto<C> for Twhere
    C: TryFromComponents<T>,
Source§type Error = <C as TryFromComponents<T>>::Error
 
type Error = <C as TryFromComponents<T>>::Error
The error for when 
try_into_colors fails to cast.Source§fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
 
fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
Try to cast this collection of color components into a collection of
colors. Read more
Source§impl<T, U> TryIntoColor<U> for Twhere
    U: TryFromColor<T>,
 
impl<T, U> TryIntoColor<U> for Twhere
    U: TryFromColor<T>,
Source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
 
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
Convert into T, returning ok if the color is inside of its defined
range, otherwise an 
OutOfBounds error is returned which contains
the unclamped color. Read moreSource§impl<C, U> UintsFrom<C> for Uwhere
    C: IntoUints<U>,
 
impl<C, U> UintsFrom<C> for Uwhere
    C: IntoUints<U>,
Source§fn uints_from(colors: C) -> U
 
fn uints_from(colors: C) -> U
Cast a collection of colors into a collection of unsigned integers.
Source§impl<C, U> UintsInto<C> for Uwhere
    C: FromUints<U>,
 
impl<C, U> UintsInto<C> for Uwhere
    C: FromUints<U>,
Source§fn uints_into(self) -> C
 
fn uints_into(self) -> C
Cast this collection of unsigned integers into a collection of colors.