# [−][src]Enum futures::future::Either

```pub enum Either<A, B> {
Left(A),
Right(B),
}```

Combines two different futures, streams, or sinks having the same associated types into a single type.

## Variants

`Left(A)`

First branch of the type

`Right(B)`

Second branch of the type

## Methods

### `impl<A, B, T> Either<(T, A), (T, B)>`[src]

#### `pub fn factor_first(self) -> (T, Either<A, B>)`[src]

Factor out a homogeneous type from an either of pairs.

Here, the homogeneous type is the first element of the pairs.

### `impl<A, B, T> Either<(A, T), (B, T)>`[src]

#### `pub fn factor_second(self) -> (Either<A, B>, T)`[src]

Factor out a homogeneous type from an either of pairs.

Here, the homogeneous type is the second element of the pairs.

### `impl<T> Either<T, T>`[src]

#### `pub fn into_inner(self) -> T`[src]

Extract the value of an either over two equivalent types.

## Trait Implementations

### `impl<A, B> Future for Either<A, B> where    A: Future,    B: Future<Output = <A as Future>::Output>, `[src]

#### `type Output = <A as Future>::Output`

The type of value produced on completion.

### `impl<A, B> Clone for Either<A, B> where    A: Clone,    B: Clone, `[src]

#### `fn clone_from(&mut self, source: &Self)`1.0.0[src]

Performs copy-assignment from `source`. Read more

### `impl<A, B> Stream for Either<A, B> where    A: Stream,    B: Stream<Item = <A as Stream>::Item>, `[src]

#### `type Item = <A as Stream>::Item`

Values yielded by the stream.

### `impl<A, B, Item> Sink<Item> for Either<A, B> where    A: Sink<Item>,    B: Sink<Item, SinkError = <A as Sink<Item>>::SinkError>, `[src]

#### `type SinkError = <A as Sink<Item>>::SinkError`

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

## Blanket Implementations

### `impl<T> ToOwned for T where    T: Clone, `[src]

#### `type Owned = T`

The resulting type after obtaining ownership.

### `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.

### `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.

### `impl<T> FutureExt for T where    T: Future + ?Sized, `[src]

#### ⓘImportant traits for Map<Fut, F>### Important traits for Map<Fut, F> `impl<Fut, F, T> Future for Map<Fut, F> where    F: FnOnce(<Fut as Future>::Output) -> T,    Fut: Future,  type Output = T;``fn map<U, F>(self, f: F) -> Map<Self, F> where    F: FnOnce(Self::Output) -> U, `[src]

Map this future's output to a different type, returning a new future of the resulting type. Read more

#### ⓘImportant traits for Then<Fut1, Fut2, F>### Important traits for Then<Fut1, Fut2, F> `impl<Fut1, Fut2, F> Future for Then<Fut1, Fut2, F> where    F: FnOnce(<Fut1 as Future>::Output) -> Fut2,    Fut1: Future,    Fut2: Future,  type Output = <Fut2 as Future>::Output;``fn then<Fut, F>(self, f: F) -> Then<Self, Fut, F> where    F: FnOnce(Self::Output) -> Fut,    Fut: Future, `[src]

Chain on a computation for when a future finished, passing the result of the future to the provided closure `f`. Read more

#### ⓘImportant traits for Either<A, B>### Important traits for Either<A, B> `impl<A, B> Future for Either<A, B> where    A: Future,    B: Future<Output = <A as Future>::Output>,  type Output = <A as Future>::Output;``fn left_future<B>(self) -> Either<Self, B> where    B: Future<Output = Self::Output>, `[src]

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

#### ⓘImportant traits for Either<A, B>### Important traits for Either<A, B> `impl<A, B> Future for Either<A, B> where    A: Future,    B: Future<Output = <A as Future>::Output>,  type Output = <A as Future>::Output;``fn right_future<A>(self) -> Either<A, Self> where    A: Future<Output = Self::Output>, `[src]

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

#### `fn into_stream(self) -> IntoStream<Self>`[src]

Convert this future into a single element stream. Read more

#### ⓘImportant traits for Flatten<Fut>### Important traits for Flatten<Fut> `impl<Fut> Future for Flatten<Fut> where    Fut: Future,    <Fut as Future>::Output: Future,  type Output = <<Fut as Future>::Output as Future>::Output;``fn flatten(self) -> Flatten<Self> where    Self::Output: Future, `[src]

Flatten the execution of this future when the successful result of this future is itself another future. Read more

#### `fn flatten_stream(self) -> FlattenStream<Self> where    Self::Output: Stream, `[src]

Flatten the execution of this future when the successful result of this future is a stream. Read more

#### ⓘImportant traits for Fuse<Fut>### Important traits for Fuse<Fut> `impl<Fut> Future for Fuse<Fut> where    Fut: Future,  type Output = <Fut as Future>::Output;``fn fuse(self) -> Fuse<Self>`[src]

Fuse a future such that `poll` will never again be called once it has completed. This method can be used to turn any `Future` into a `FusedFuture`. Read more

#### ⓘImportant traits for Inspect<Fut, F>### Important traits for Inspect<Fut, F> `impl<Fut, F> Future for Inspect<Fut, F> where    F: FnOnce(&<Fut as Future>::Output),    Fut: Future,  type Output = <Fut as Future>::Output;``fn inspect<F>(self, f: F) -> Inspect<Self, F> where    F: FnOnce(&Self::Output), `[src]

Do something with the output of a future before passing it on. Read more

#### ⓘImportant traits for CatchUnwind<Fut>### Important traits for CatchUnwind<Fut> `impl<Fut> Future for CatchUnwind<Fut> where    Fut: Future + UnwindSafe,  type Output = Result<<Fut as Future>::Output, Box<dyn Any + 'static + Send>>;``fn catch_unwind(self) -> CatchUnwind<Self> where    Self: UnwindSafe, `[src]

Catches unwinding panics while polling the future. Read more

#### ⓘImportant traits for Shared<Fut>### Important traits for Shared<Fut> `impl<Fut> Future for Shared<Fut> where    Fut: Future,    <Fut as Future>::Output: Clone,  type Output = <Fut as Future>::Output;``fn shared(self) -> Shared<Self> where    Self::Output: Clone, `[src]

Create a cloneable handle to this future where all handles will resolve to the same result. Read more

#### `fn remote_handle(self) -> (Remote<Self>, RemoteHandle<Self::Output>)`[src]

Turn this future into a future that yields `()` on completion and sends its output to another future on a separate task. Read more

#### ⓘImportant traits for Pin<P>### Important traits for Pin<P> `impl<P> Future for Pin<P> where    P: Unpin + DerefMut,    <P as Deref>::Target: Future,  type Output = <<P as Deref>::Target as Future>::Output;``fn boxed<'a>(self) -> Pin<Box<dyn Future<Output = Self::Output> + 'a + Send>> where    Self: Send + 'a, `[src]

Wrap the future in a Box, pinning it.

#### ⓘImportant traits for Pin<P>### Important traits for Pin<P> `impl<P> Future for Pin<P> where    P: Unpin + DerefMut,    <P as Deref>::Target: Future,  type Output = <<P as Deref>::Target as Future>::Output;``fn boxed_local<'a>(self) -> Pin<Box<dyn Future<Output = Self::Output> + 'a>> where    Self: 'a, `[src]

Wrap the future in a Box, pinning it. Read more

#### ⓘImportant traits for UnitError<Fut>### Important traits for UnitError<Fut> `impl<Fut, T> Future for UnitError<Fut> where    Fut: Future<Output = T>,  type Output = Result<T, ()>;``fn unit_error(self) -> UnitError<Self>`[src]

Turns a `Future<Output = T>` into a `TryFuture<Ok = T, Error = ()`>. Read more

#### `fn poll_unpin(&mut self, cx: &mut Context) -> Poll<Self::Output> where    Self: Unpin, `[src]

A convenience for calling `Future::poll` on `Unpin` future types.

### `impl<F, T, E> TryFuture for F where    F: Future<Output = Result<T, E>> + ?Sized, `[src]

#### `type Ok = T`

The type of successful values yielded by this future

#### `type Error = E`

The type of failures yielded by this future

### `impl<Fut> TryFutureExt for Fut where    Fut: TryFuture + ?Sized, `[src]

#### `fn flatten_sink<Item>(self) -> FlattenSink<Self, Self::Ok> where    Self::Ok: Sink<Item>,    <Self::Ok as Sink<Item>>::SinkError == Self::Error, `[src]

Flattens the execution of this future when the successful result of this future is a [`Sink`]. Read more

#### ⓘImportant traits for MapOk<Fut, F>### Important traits for MapOk<Fut, F> `impl<Fut, F, T> Future for MapOk<Fut, F> where    F: FnOnce(<Fut as TryFuture>::Ok) -> T,    Fut: TryFuture,  type Output = Result<T, <Fut as TryFuture>::Error>;``fn map_ok<T, F>(self, f: F) -> MapOk<Self, F> where    F: FnOnce(Self::Ok) -> T, `[src]

Maps this future's success value to a different value. Read more

#### ⓘImportant traits for MapErr<Fut, F>### Important traits for MapErr<Fut, F> `impl<Fut, F, E> Future for MapErr<Fut, F> where    F: FnOnce(<Fut as TryFuture>::Error) -> E,    Fut: TryFuture,  type Output = Result<<Fut as TryFuture>::Ok, E>;``fn map_err<E, F>(self, f: F) -> MapErr<Self, F> where    F: FnOnce(Self::Error) -> E, `[src]

Maps this future's error value to a different value. Read more

#### ⓘImportant traits for ErrInto<Fut, E>### Important traits for ErrInto<Fut, E> `impl<Fut, E> Future for ErrInto<Fut, E> where    Fut: TryFuture,    <Fut as TryFuture>::Error: Into<E>,  type Output = Result<<Fut as TryFuture>::Ok, E>;``fn err_into<E>(self) -> ErrInto<Self, E> where    Self::Error: Into<E>, `[src]

Maps this future's `Error` to a new error type using the `Into` trait. Read more

#### ⓘImportant traits for AndThen<Fut1, Fut2, F>### Important traits for AndThen<Fut1, Fut2, F> `impl<Fut1, Fut2, F> Future for AndThen<Fut1, Fut2, F> where    F: FnOnce(<Fut1 as TryFuture>::Ok) -> Fut2,    Fut1: TryFuture,    Fut2: TryFuture<Error = <Fut1 as TryFuture>::Error>,  type Output = Result<<Fut2 as TryFuture>::Ok, <Fut2 as TryFuture>::Error>;``fn and_then<Fut, F>(self, f: F) -> AndThen<Self, Fut, F> where    F: FnOnce(Self::Ok) -> Fut,    Fut: TryFuture<Error = Self::Error>, `[src]

Executes another future after this one resolves successfully. The success value is passed to a closure to create this subsequent future. Read more

#### ⓘImportant traits for OrElse<Fut1, Fut2, F>### Important traits for OrElse<Fut1, Fut2, F> `impl<Fut1, Fut2, F> Future for OrElse<Fut1, Fut2, F> where    F: FnOnce(<Fut1 as TryFuture>::Error) -> Fut2,    Fut1: TryFuture,    Fut2: TryFuture<Ok = <Fut1 as TryFuture>::Ok>,  type Output = Result<<Fut2 as TryFuture>::Ok, <Fut2 as TryFuture>::Error>;``fn or_else<Fut, F>(self, f: F) -> OrElse<Self, Fut, F> where    F: FnOnce(Self::Error) -> Fut,    Fut: TryFuture<Ok = Self::Ok>, `[src]

Executes another future if this one resolves to an error. The error value is passed to a closure to create this subsequent future. Read more

#### ⓘImportant traits for UnwrapOrElse<Fut, F>### Important traits for UnwrapOrElse<Fut, F> `impl<Fut, F> Future for UnwrapOrElse<Fut, F> where    F: FnOnce(<Fut as TryFuture>::Error) -> <Fut as TryFuture>::Ok,    Fut: TryFuture,  type Output = <Fut as TryFuture>::Ok;``fn unwrap_or_else<F>(self, f: F) -> UnwrapOrElse<Self, F> where    F: FnOnce(Self::Error) -> Self::Ok, `[src]

Unwraps this future's ouput, producing a future with this future's `Ok` type as its `Output` type. Read more

#### ⓘImportant traits for IntoFuture<Fut>### Important traits for IntoFuture<Fut> `impl<Fut> Future for IntoFuture<Fut> where    Fut: TryFuture,  type Output = Result<<Fut as TryFuture>::Ok, <Fut as TryFuture>::Error>;``fn into_future(self) -> IntoFuture<Self>`[src]

Wraps a [`TryFuture`] into a type that implements `Future`. Read more

### `impl<S, T, E> TryStream for S where    S: Stream<Item = Result<T, E>> + ?Sized, `[src]

#### `type Ok = T`

The type of successful values yielded by this future

#### `type Error = E`

The type of failures yielded by this future

### `impl<T> StreamExt for T where    T: Stream + ?Sized, `[src]

#### ⓘImportant traits for Next<'_, St>### Important traits for Next<'_, St> `impl<'_, St> Future for Next<'_, St> where    St: Unpin + Stream,  type Output = Option<<St as Stream>::Item>;``fn next(&mut self) -> Next<Self> where    Self: Unpin, `[src]

Creates a future that resolves to the next item in the stream. Read more

#### ⓘImportant traits for StreamFuture<St>### Important traits for StreamFuture<St> `impl<St> Future for StreamFuture<St> where    St: Unpin + Stream,  type Output = (Option<<St as Stream>::Item>, St);``fn into_future(self) -> StreamFuture<Self> where    Self: Unpin, `[src]

Converts this stream into a future of `(next_item, tail_of_stream)`. If the stream terminates, then the next item is [`None`]. Read more

#### `fn map<T, F>(self, f: F) -> Map<Self, F> where    F: FnMut(Self::Item) -> T, `[src]

Maps this stream's items to a different type, returning a new stream of the resulting type. Read more

#### `fn enumerate(self) -> Enumerate<Self>`[src]

Creates a stream which gives the current iteration count as well as the next value. Read more

#### `fn filter<Fut, F>(self, f: F) -> Filter<Self, Fut, F> where    F: FnMut(&Self::Item) -> Fut,    Fut: Future<Output = bool>, `[src]

Filters the values produced by this stream according to the provided asynchronous predicate. Read more

#### `fn filter_map<Fut, T, F>(self, f: F) -> FilterMap<Self, Fut, F> where    F: FnMut(Self::Item) -> Fut,    Fut: Future<Output = Option<T>>, `[src]

Filters the values produced by this stream while simultaneously mapping them to a different type according to the provided asynchronous closure. Read more

#### `fn then<Fut, F>(self, f: F) -> Then<Self, Fut, F> where    F: FnMut(Self::Item) -> Fut,    Fut: Future, `[src]

Computes from this stream's items new items of a different type using an asynchronous closure. Read more

#### ⓘImportant traits for Collect<St, C>### Important traits for Collect<St, C> `impl<St, C> Future for Collect<St, C> where    C: Default + Extend<<St as Stream>::Item>,    St: Stream,  type Output = C;``fn collect<C>(self) -> Collect<Self, C> where    C: Default + Extend<Self::Item>, `[src]

Collect all of the values of this stream into a vector, returning a future representing the result of that computation. Read more

#### ⓘImportant traits for Concat<St>### Important traits for Concat<St> `impl<St> Future for Concat<St> where    St: Stream,    <St as Stream>::Item: Extend<<<St as Stream>::Item as IntoIterator>::Item>,    <St as Stream>::Item: IntoIterator,    <St as Stream>::Item: Default,  type Output = <St as Stream>::Item;``fn concat(self) -> Concat<Self> where    Self::Item: Extend<<Self::Item as IntoIterator>::Item>,    Self::Item: IntoIterator,    Self::Item: Default, `[src]

Concatenate all items of a stream into a single extendable destination, returning a future representing the end result. Read more

#### ⓘImportant traits for Fold<St, Fut, T, F>### Important traits for Fold<St, Fut, T, F> `impl<St, Fut, T, F> Future for Fold<St, Fut, T, F> where    F: FnMut(T, <St as Stream>::Item) -> Fut,    Fut: Future<Output = T>,    St: Stream,  type Output = T;``fn fold<T, Fut, F>(self, init: T, f: F) -> Fold<Self, Fut, T, F> where    F: FnMut(T, Self::Item) -> Fut,    Fut: Future<Output = T>, `[src]

Execute an accumulating asynchronous computation over a stream, collecting all the values into one final result. Read more

#### `fn flatten(self) -> Flatten<Self> where    Self::Item: Stream, `[src]

Flattens a stream of streams into just one continuous stream. Read more

#### `fn skip_while<Fut, F>(self, f: F) -> SkipWhile<Self, Fut, F> where    F: FnMut(&Self::Item) -> Fut,    Fut: Future<Output = bool>, `[src]

Skip elements on this stream while the provided asynchronous predicate resolves to `true`. Read more

#### `fn take_while<Fut, F>(self, f: F) -> TakeWhile<Self, Fut, F> where    F: FnMut(&Self::Item) -> Fut,    Fut: Future<Output = bool>, `[src]

Take elements from this stream while the provided asynchronous predicate resolves to `true`. Read more

#### ⓘImportant traits for ForEach<St, Fut, F>### Important traits for ForEach<St, Fut, F> `impl<St, Fut, F> Future for ForEach<St, Fut, F> where    F: FnMut(<St as Stream>::Item) -> Fut,    Fut: Future<Output = ()>,    St: Stream,  type Output = ();``fn for_each<Fut, F>(self, f: F) -> ForEach<Self, Fut, F> where    F: FnMut(Self::Item) -> Fut,    Fut: Future<Output = ()>, `[src]

Runs this stream to completion, executing the provided asynchronous closure for each element on the stream. Read more

#### ⓘImportant traits for ForEachConcurrent<St, Fut, F>### Important traits for ForEachConcurrent<St, Fut, F> `impl<St, Fut, F> Future for ForEachConcurrent<St, Fut, F> where    F: FnMut(<St as Stream>::Item) -> Fut,    Fut: Future<Output = ()>,    St: Stream,  type Output = ();``fn for_each_concurrent<Fut, F, impl Into>>(    self,     limit: impl Into>,     f: F) -> ForEachConcurrent<Self, Fut, F> where    F: FnMut(Self::Item) -> Fut,    Fut: Future<Output = ()>,    impl Into>: Into<Option<usize>>, `[src]

Runs this stream to completion, executing the provided asynchronous closure for each element on the stream concurrently as elements become available. Read more

#### `fn take(self, n: u64) -> Take<Self>`[src]

Creates a new stream of at most `n` items of the underlying stream. Read more

#### `fn skip(self, n: u64) -> Skip<Self>`[src]

Creates a new stream which skips `n` items of the underlying stream. Read more

#### `fn fuse(self) -> Fuse<Self>`[src]

Fuse a stream such that `poll_next` will never again be called once it has finished. This method can be used t turn any `Stream` into a `FusedStream`. Read more

#### ⓘImportant traits for &'_ mut F### Important traits for &'_ mut F `impl<'_, F> Future for &'_ mut F where    F: Unpin + Future + ?Sized,  type Output = <F as Future>::Output;``fn by_ref(&mut self) -> &mut Self`[src]

Borrows a stream, rather than consuming it. Read more

#### `fn catch_unwind(self) -> CatchUnwind<Self> where    Self: UnwindSafe, `[src]

Catches unwinding panics while polling the stream. Read more

#### ⓘImportant traits for Pin<P>### Important traits for Pin<P> `impl<P> Future for Pin<P> where    P: Unpin + DerefMut,    <P as Deref>::Target: Future,  type Output = <<P as Deref>::Target as Future>::Output;``fn boxed(self) -> Pin<Box<Self>>`[src]

Wrap the stream in a Box, pinning it.

#### `fn buffered(self, n: usize) -> Buffered<Self> where    Self::Item: Future, `[src]

An adaptor for creating a buffered list of pending futures. Read more

#### `fn buffer_unordered(self, n: usize) -> BufferUnordered<Self> where    Self::Item: Future, `[src]

An adaptor for creating a buffered list of pending futures (unordered). Read more

#### `fn peekable(self) -> Peekable<Self>`[src]

Creates a new stream which exposes a `peek` method. Read more

#### `fn chunks(self, capacity: usize) -> Chunks<Self>`[src]

An adaptor for chunking up items of the stream inside a vector. Read more

#### ⓘImportant traits for Forward<St, Si>### Important traits for Forward<St, Si> `impl<St, Si, Item, E> Future for Forward<St, Si> where    Si: Sink<Item, SinkError = E>,    St: Stream<Item = Result<Item, E>>,  type Output = Result<(), <Si as Sink<Item>>::SinkError>;``fn forward<S>(self, sink: S) -> Forward<Self, S> where    S: Sink<Self::Ok>,    Self: TryStream<Error = <S as Sink<Self::Ok>>::SinkError>, `[src]

A future that completes after the given stream has been fully processed into the sink and the sink has been flushed and closed. Read more

#### `fn split<Item>(self) -> (SplitSink<Self, Item>, SplitStream<Self>) where    Self: Sink<Item>, `[src]

Splits this `Stream + Sink` object into separate `Stream` and `Sink` objects. Read more

#### `fn inspect<F>(self, f: F) -> Inspect<Self, F> where    F: FnMut(&Self::Item), `[src]

Do something with each item of this stream, afterwards passing it on. Read more

#### ⓘImportant traits for Either<A, B>### Important traits for Either<A, B> `impl<A, B> Future for Either<A, B> where    A: Future,    B: Future<Output = <A as Future>::Output>,  type Output = <A as Future>::Output;``fn left_stream<B>(self) -> Either<Self, B> where    B: Stream<Item = Self::Item>, `[src]

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

#### ⓘImportant traits for Either<A, B>### Important traits for Either<A, B> `impl<A, B> Future for Either<A, B> where    A: Future,    B: Future<Output = <A as Future>::Output>,  type Output = <A as Future>::Output;``fn right_stream<B>(self) -> Either<B, Self> where    B: Stream<Item = Self::Item>, `[src]

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

#### `fn poll_next_unpin(&mut self, cx: &mut Context) -> Poll<Option<Self::Item>> where    Self: Unpin, `[src]

A convenience method for calling [`Stream::poll_next`] on [`Unpin`] stream types. Read more

#### ⓘImportant traits for SelectNextSome<'_, St>### Important traits for SelectNextSome<'_, St> `impl<'_, St> Future for SelectNextSome<'_, St> where    St: Unpin + Stream + FusedStream,  type Output = <St as Stream>::Item;``fn select_next_some(&mut self) -> SelectNextSome<Self> where    Self: Unpin + FusedStream, `[src]

Returns a [`Future`] that resolves when the next item in this stream is ready. Read more

### `impl<S> TryStreamExt for S where    S: TryStream + ?Sized, `[src]

#### `fn err_into<E>(self) -> ErrInto<Self, E> where    Self::Error: Into<E>, `[src]

Wraps the current stream in a new stream which converts the error type into the one provided. Read more

#### `fn map_ok<T, F>(self, f: F) -> MapOk<Self, F> where    F: FnMut(Self::Ok) -> T, `[src]

Wraps the current stream in a new stream which maps the success value using the provided closure. Read more

#### `fn map_err<E, F>(self, f: F) -> MapErr<Self, F> where    F: FnMut(Self::Error) -> E, `[src]

Wraps the current stream in a new stream which maps the error value using the provided closure. Read more

#### `fn and_then<Fut, F>(self, f: F) -> AndThen<Self, Fut, F> where    F: FnMut(Self::Ok) -> Fut,    Fut: TryFuture<Error = Self::Error>, `[src]

Chain on a computation for when a value is ready, passing the successful results to the provided closure `f`. Read more

#### `fn or_else<Fut, F>(self, f: F) -> OrElse<Self, Fut, F> where    F: FnMut(Self::Error) -> Fut,    Fut: TryFuture<Ok = Self::Ok>, `[src]

Chain on a computation for when an error happens, passing the erroneous result to the provided closure `f`. Read more

#### `fn inspect_ok<F>(self, f: F) -> InspectOk<Self, F> where    F: FnMut(&Self::Ok), `[src]

Do something with the success value of this stream, afterwards passing it on. Read more

#### `fn inspect_err<F>(self, f: F) -> InspectErr<Self, F> where    F: FnMut(&Self::Error), `[src]

Do something with the error value of this stream, afterwards passing it on. Read more

#### `fn into_stream(self) -> IntoStream<Self>`[src]

Wraps a [`TryStream`] into a type that implements `Stream` Read more

#### ⓘImportant traits for TryNext<'_, St>### Important traits for TryNext<'_, St> `impl<'_, St> Future for TryNext<'_, St> where    St: Unpin + TryStream,  type Output = Result<Option<<St as TryStream>::Ok>, <St as TryStream>::Error>;``fn try_next(&mut self) -> TryNext<Self> where    Self: Unpin, `[src]

Creates a future that attempts to resolve the next item in the stream. If an error is encountered before the next item, the error is returned instead. Read more

#### ⓘImportant traits for TryForEach<St, Fut, F>### Important traits for TryForEach<St, Fut, F> `impl<St, Fut, F> Future for TryForEach<St, Fut, F> where    F: FnMut(<St as TryStream>::Ok) -> Fut,    Fut: TryFuture<Ok = (), Error = <St as TryStream>::Error>,    St: TryStream,  type Output = Result<(), <St as TryStream>::Error>;``fn try_for_each<Fut, F>(self, f: F) -> TryForEach<Self, Fut, F> where    F: FnMut(Self::Ok) -> Fut,    Fut: TryFuture<Ok = (), Error = Self::Error>, `[src]

Attempts to run this stream to completion, executing the provided asynchronous closure for each element on the stream. Read more

#### `fn try_skip_while<Fut, F>(self, f: F) -> TrySkipWhile<Self, Fut, F> where    F: FnMut(&Self::Ok) -> Fut,    Fut: TryFuture<Ok = bool, Error = Self::Error>, `[src]

Skip elements on this stream while the provided asynchronous predicate resolves to `true`. Read more

#### ⓘImportant traits for TryForEachConcurrent<St, Fut, F>### Important traits for TryForEachConcurrent<St, Fut, F> `impl<St, Fut, F> Future for TryForEachConcurrent<St, Fut, F> where    F: FnMut(<St as TryStream>::Ok) -> Fut,    Fut: Future<Output = Result<(), <St as TryStream>::Error>>,    St: TryStream,  type Output = Result<(), <St as TryStream>::Error>;``fn try_for_each_concurrent<Fut, F, impl Into>>(    self,     limit: impl Into>,     f: F) -> TryForEachConcurrent<Self, Fut, F> where    F: FnMut(Self::Ok) -> Fut,    Fut: Future<Output = Result<(), Self::Error>>,    impl Into>: Into<Option<usize>>, `[src]

Attempts to run this stream to completion, executing the provided asynchronous closure for each element on the stream concurrently as elements become available, exiting as soon as an error occurs. Read more

#### ⓘImportant traits for TryCollect<St, C>### Important traits for TryCollect<St, C> `impl<St, C> Future for TryCollect<St, C> where    C: Default + Extend<<St as TryStream>::Ok>,    St: TryStream,  type Output = Result<C, <St as TryStream>::Error>;``fn try_collect<C>(self) -> TryCollect<Self, C> where    C: Default + Extend<Self::Ok>, `[src]

Attempt to Collect all of the values of this stream into a vector, returning a future representing the result of that computation. Read more

#### `fn try_filter<Fut, F>(self, f: F) -> TryFilter<Self, Fut, F> where    F: FnMut(&Self::Ok) -> Fut,    Fut: Future<Output = bool>, `[src]

Attempt to filter the values produced by this stream according to the provided asynchronous closure. Read more

#### `fn try_filter_map<Fut, F, T>(self, f: F) -> TryFilterMap<Self, Fut, F> where    F: FnMut(Self::Ok) -> Fut,    Fut: TryFuture<Ok = Option<T>, Error = Self::Error>, `[src]

Attempt to filter the values produced by this stream while simultaneously mapping them to a different type according to the provided asynchronous closure. Read more

#### ⓘImportant traits for TryFold<St, Fut, T, F>### Important traits for TryFold<St, Fut, T, F> `impl<St, Fut, T, F> Future for TryFold<St, Fut, T, F> where    F: FnMut(T, <St as TryStream>::Ok) -> Fut,    Fut: TryFuture<Ok = T, Error = <St as TryStream>::Error>,    St: TryStream,  type Output = Result<T, <St as TryStream>::Error>;``fn try_fold<T, Fut, F>(self, init: T, f: F) -> TryFold<Self, Fut, T, F> where    F: FnMut(T, Self::Ok) -> Fut,    Fut: TryFuture<Ok = T, Error = Self::Error>, `[src]

Attempt to execute an accumulating asynchronous computation over a stream, collecting all the values into one final result. Read more

#### ⓘImportant traits for TryConcat<St>### Important traits for TryConcat<St> `impl<St> Future for TryConcat<St> where    St: TryStream,    <St as TryStream>::Ok: Extend<<<St as TryStream>::Ok as IntoIterator>::Item>,    <St as TryStream>::Ok: IntoIterator,    <St as TryStream>::Ok: Default,  type Output = Result<<St as TryStream>::Ok, <St as TryStream>::Error>;``fn try_concat(self) -> TryConcat<Self> where    Self::Ok: Extend<<Self::Ok as IntoIterator>::Item>,    Self::Ok: IntoIterator,    Self::Ok: Default, `[src]

Attempt to concatenate all items of a stream into a single extendable destination, returning a future representing the end result. Read more

#### `fn try_buffer_unordered(self, n: usize) -> TryBufferUnordered<Self> where    Self::Ok: TryFuture,    <Self::Ok as TryFuture>::Error == Self::Error, `[src]

Attempt to execute several futures from a stream concurrently. Read more

#### `fn try_poll_next_unpin(    &mut self,     cx: &mut Context) -> Poll<Option<Result<Self::Ok, Self::Error>>> where    Self: Unpin, `[src]

A convenience method for calling [`TryStream::try_poll_next`] on [`Unpin`] stream types. Read more

#### `fn into_async_read(self) -> IntoAsyncRead<Self> where    Self: TryStreamExt<Error = Error> + Unpin,    Self::Ok: AsRef<[u8]>, `[src]

Adapter that converts this stream into an `AsyncRead`. Read more

### `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::SinkError>,    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::SinkError>>, `[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::SinkError) -> E, `[src]

Transforms the error returned by the sink.

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

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

Close the sink.

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

Fanout items to multiple sinks. Read more

#### ⓘImportant traits for Flush<'_, Si, Item>### Important traits for Flush<'_, Si, Item> `impl<'_, Si, Item> Future for Flush<'_, Si, Item> where    Si: Unpin + Sink<Item> + ?Sized,  type Output = Result<(), <Si as Sink<Item>>::SinkError>;``fn flush(&mut self) -> Flush<Self, Item> where    Self: Unpin, `[src]

Flush the sync, processing all pending items. Read more

#### ⓘImportant traits for Send<'_, Si, Item>### Important traits for Send<'_, Si, Item> `impl<'_, Si, Item> Future for Send<'_, Si, Item> where    Si: Unpin + Sink<Item> + ?Sized,  type Output = Result<(), <Si as Sink<Item>>::SinkError>;``fn send(&mut self, item: Item) -> Send<Self, Item> where    Self: Unpin, `[src]

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

#### ⓘImportant traits for SendAll<'_, Si, St>### Important traits for SendAll<'_, Si, St> `impl<'_, Si, St> Future for SendAll<'_, Si, St> where    Si: Sink<<St as Stream>::Item> + Unpin + ?Sized,    St: Stream + Unpin + ?Sized,  type Output = Result<(), <Si as Sink<<St as Stream>::Item>>::SinkError>;``fn send_all<St>(&'a mut self, stream: &'a mut St) -> SendAll<'a, Self, St> where    Self: Unpin,    St: Stream<Item = Item> + Unpin, `[src]

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

#### ⓘImportant traits for Either<A, B>### Important traits for Either<A, B> `impl<A, B> Future for Either<A, B> where    A: Future,    B: Future<Output = <A as Future>::Output>,  type Output = <A as Future>::Output;``fn left_sink<Si2>(self) -> Either<Self, Si2> where    Si2: Sink<Item, SinkError = Self::SinkError>, `[src]

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

#### ⓘImportant traits for Either<A, B>### Important traits for Either<A, B> `impl<A, B> Future for Either<A, B> where    A: Future,    B: Future<Output = <A as Future>::Output>,  type Output = <A as Future>::Output;``fn right_sink<Si1>(self) -> Either<Si1, Self> where    Si1: Sink<Item, SinkError = Self::SinkError>, `[src]

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