[go: up one dir, main page]

Struct futures::sink::Fanout[][src]

#[must_use = "sinks do nothing unless polled"]
pub struct Fanout<Si1, Si2> { /* fields omitted */ }
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>[src]

pub fn get_ref(&self) -> (&Si1, &Si2)[src]

Get a shared reference to the inner sinks.

pub fn get_mut(&mut self) -> (&mut Si1, &mut Si2)[src]

Get a mutable reference to the inner sinks.

pub fn get_pin_mut(
    self: Pin<&mut Fanout<Si1, Si2>>
) -> (Pin<&mut Si1>, Pin<&mut Si2>)
[src]

Get a pinned mutable reference to the inner sinks.

pub fn into_inner(self) -> (Si1, Si2)[src]

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> Debug for Fanout<Si1, Si2> where
    Si2: Debug,
    Si1: Debug
[src]

pub fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>[src]

Formats the value using the given formatter. Read more

impl<Si1, Si2, Item> Sink<Item> for Fanout<Si1, Si2> where
    Item: Clone,
    Si2: Sink<Item, Error = <Si1 as Sink<Item>>::Error>,
    Si1: Sink<Item>, 
[src]

type Error = <Si1 as Sink<Item>>::Error

The type of value produced by the sink when an error occurs.

pub fn poll_ready(
    self: Pin<&mut Fanout<Si1, Si2>>,
    cx: &mut Context<'_>
) -> Poll<Result<(), <Fanout<Si1, Si2> as Sink<Item>>::Error>>
[src]

Attempts to prepare the Sink to receive a value. Read more

pub fn start_send(
    self: Pin<&mut Fanout<Si1, Si2>>,
    item: Item
) -> Result<(), <Fanout<Si1, Si2> as Sink<Item>>::Error>
[src]

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 more

pub fn poll_flush(
    self: Pin<&mut Fanout<Si1, Si2>>,
    cx: &mut Context<'_>
) -> Poll<Result<(), <Fanout<Si1, Si2> as Sink<Item>>::Error>>
[src]

Flush any remaining output from this sink. Read more

pub fn poll_close(
    self: Pin<&mut Fanout<Si1, Si2>>,
    cx: &mut Context<'_>
) -> Poll<Result<(), <Fanout<Si1, Si2> as Sink<Item>>::Error>>
[src]

Flush any remaining output and close this sink, if necessary. Read more

impl<'__pin, Si1, Si2> Unpin for Fanout<Si1, Si2> where
    __Origin<'__pin, Si1, Si2>: Unpin
[src]

Auto Trait Implementations

impl<Si1, Si2> RefUnwindSafe for Fanout<Si1, Si2> where
    Si1: RefUnwindSafe,
    Si2: RefUnwindSafe

impl<Si1, Si2> Send for Fanout<Si1, Si2> where
    Si1: Send,
    Si2: Send

impl<Si1, Si2> Sync for Fanout<Si1, Si2> where
    Si1: Sync,
    Si2: Sync

impl<Si1, Si2> UnwindSafe for Fanout<Si1, Si2> where
    Si1: UnwindSafe,
    Si2: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T, Item> SinkExt<Item> for T where
    T: Sink<Item> + ?Sized
[src]

fn with<U, Fut, F, E>(self, f: F) -> With<Self, Item, U, Fut, F> where
    E: From<Self::Error>,
    F: FnMut(U) -> Fut,
    Fut: Future<Output = Result<Item, E>>, 
[src]

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> where
    F: FnMut(U) -> St,
    St: Stream<Item = Result<Item, Self::Error>>, 
[src]

Composes a function in front of the sink. Read more

fn sink_map_err<E, F>(self, f: F) -> SinkMapErr<Self, F> where
    F: FnOnce(Self::Error) -> E, 
[src]

Transforms the error returned by the sink.

fn sink_err_into<E>(self) -> SinkErrInto<Self, Item, E> where
    Self::Error: Into<E>, 
[src]

Map this sink’s error to a different error type using the Into trait. Read more

fn buffer(self, capacity: usize) -> Buffer<Self, Item>[src]

Adds a fixed-size buffer to the current sink. Read more

fn close(&mut self) -> Close<'_, Self, Item>

Notable traits for Close<'_, Si, Item>

impl<'_, Si, Item> Future for Close<'_, Si, Item> where
    Si: Sink<Item> + Unpin + ?Sized
type Output = Result<(), <Si as Sink<Item>>::Error>;
where
    Self: Unpin
[src]

Close the sink.

fn fanout<Si>(self, other: Si) -> Fanout<Self, Si> where
    Item: Clone,
    Si: Sink<Item, Error = Self::Error>, 
[src]

Fanout items to multiple sinks. Read more

fn flush(&mut self) -> Flush<'_, Self, Item>

Notable traits for Flush<'_, Si, Item>

impl<'_, Si, Item> Future for Flush<'_, Si, Item> where
    Si: Sink<Item> + Unpin + ?Sized
type Output = Result<(), <Si as Sink<Item>>::Error>;
where
    Self: Unpin
[src]

Flush the sink, processing all pending items. Read more

fn send(&mut self, item: Item) -> Send<'_, Self, Item>

Notable traits for Send<'_, Si, Item>

impl<'_, Si, Item> Future for Send<'_, Si, Item> where
    Si: Sink<Item> + Unpin + ?Sized
type Output = Result<(), <Si as Sink<Item>>::Error>;
where
    Self: Unpin
[src]

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>

Notable traits for Feed<'_, Si, Item>

impl<'_, Si, Item> Future for Feed<'_, Si, Item> where
    Si: Sink<Item> + Unpin + ?Sized
type Output = Result<(), <Si as Sink<Item>>::Error>;
where
    Self: Unpin
[src]

A future that completes after the given item has been received by the sink. Read more

fn send_all<St>(&'a mut self, stream: &'a mut St) -> SendAll<'a, Self, St>

Notable traits for SendAll<'_, Si, St>

impl<'_, Si, St, Ok, Error> Future for SendAll<'_, Si, St> where
    Si: Sink<Ok, Error = Error> + Unpin + ?Sized,
    St: Stream<Item = Result<Ok, Error>> + Unpin + ?Sized
type Output = Result<(), Error>;
where
    Self: Unpin,
    St: TryStream<Ok = Item, Error = Self::Error> + Stream + Unpin + ?Sized
[src]

A future that completes after the given stream has been fully processed into the sink, including flushing. Read more

fn left_sink<Si2>(self) -> Either<Self, Si2>

Notable traits for Either<A, B>

impl<A, B> Future for Either<A, B> where
    B: Future<Output = <A as Future>::Output>,
    A: Future
type Output = <A as Future>::Output;
where
    Si2: Sink<Item, Error = Self::Error>, 
[src]

Wrap this sink in an Either sink, making it the left-hand variant of that Either. Read more

fn right_sink<Si1>(self) -> Either<Si1, Self>

Notable traits for Either<A, B>

impl<A, B> Future for Either<A, B> where
    B: Future<Output = <A as Future>::Output>,
    A: Future
type Output = <A as Future>::Output;
where
    Si1: Sink<Item, Error = Self::Error>, 
[src]

Wrap this stream in an Either stream, making it the right-hand variant of that Either. Read more

fn compat(self) -> CompatSink<Self, Item> where
    Self: Unpin
[src]

Wraps a Sink into a sink compatible with libraries using futures 0.1 Sink. Requires the compat feature to be enabled. Read more

fn poll_ready_unpin(
    &mut self,
    cx: &mut Context<'_>
) -> Poll<Result<(), Self::Error>> where
    Self: Unpin
[src]

A convenience method for calling Sink::poll_ready on Unpin sink types. Read more

fn start_send_unpin(&mut self, item: Item) -> Result<(), Self::Error> where
    Self: Unpin
[src]

A convenience method for calling Sink::start_send on Unpin sink types. Read more

fn poll_flush_unpin(
    &mut self,
    cx: &mut Context<'_>
) -> Poll<Result<(), Self::Error>> where
    Self: Unpin
[src]

A convenience method for calling Sink::poll_flush on Unpin sink types. Read more

fn poll_close_unpin(
    &mut self,
    cx: &mut Context<'_>
) -> Poll<Result<(), Self::Error>> where
    Self: Unpin
[src]

A convenience method for calling Sink::poll_close on Unpin sink types. Read more

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.