[−][src]Enum futures::future::Either
Combines two different futures, streams, or sinks having the same associated types into a single type.
Variants
First branch of the type
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> Clone for Either<A, B> where
A: Clone,
B: Clone, [src]
A: Clone,
B: Clone,
ⓘImportant traits for Either<A, B>fn clone(&self) -> Either<A, B>[src]
fn clone_from(&mut self, source: &Self)1.0.0[src]
impl<A, B> FusedStream for Either<A, B> where
A: FusedStream,
B: FusedStream<Item = <A as Stream>::Item>, [src]
A: FusedStream,
B: FusedStream<Item = <A as Stream>::Item>,
fn is_terminated(&self) -> bool[src]
impl<A, B> FusedFuture for Either<A, B> where
A: FusedFuture,
B: FusedFuture<Output = <A as Future>::Output>, [src]
A: FusedFuture,
B: FusedFuture<Output = <A as Future>::Output>,
fn is_terminated(&self) -> bool[src]
impl<A, B> Future for Either<A, B> where
A: Future,
B: Future<Output = <A as Future>::Output>, [src]
A: Future,
B: Future<Output = <A as Future>::Output>,
type Output = <A as Future>::Output
The type of value produced on completion.
fn poll(
self: Pin<&mut Either<A, B>>,
cx: &mut Context
) -> Poll<<A as Future>::Output>[src]
self: Pin<&mut Either<A, B>>,
cx: &mut Context
) -> Poll<<A as Future>::Output>
impl<A, B> Debug for Either<A, B> where
A: Debug,
B: Debug, [src]
A: Debug,
B: Debug,
impl<A, B> Stream for Either<A, B> where
A: Stream,
B: Stream<Item = <A as Stream>::Item>, [src]
A: Stream,
B: Stream<Item = <A as Stream>::Item>,
type Item = <A as Stream>::Item
Values yielded by the stream.
fn poll_next(
self: Pin<&mut Either<A, B>>,
cx: &mut Context
) -> Poll<Option<<A as Stream>::Item>>[src]
self: Pin<&mut Either<A, B>>,
cx: &mut Context
) -> Poll<Option<<A as Stream>::Item>>
fn size_hint(&self) -> (usize, Option<usize>)[src]
impl<A, B, Item> Sink<Item> for Either<A, B> where
A: Sink<Item>,
B: Sink<Item, Error = <A as Sink<Item>>::Error>, [src]
A: Sink<Item>,
B: Sink<Item, Error = <A as Sink<Item>>::Error>,
type Error = <A as Sink<Item>>::Error
The type of value produced by the sink when an error occurs.
fn poll_ready(
self: Pin<&mut Either<A, B>>,
cx: &mut Context
) -> Poll<Result<(), <Either<A, B> as Sink<Item>>::Error>>[src]
self: Pin<&mut Either<A, B>>,
cx: &mut Context
) -> Poll<Result<(), <Either<A, B> as Sink<Item>>::Error>>
fn start_send(
self: Pin<&mut Either<A, B>>,
item: Item
) -> Result<(), <Either<A, B> as Sink<Item>>::Error>[src]
self: Pin<&mut Either<A, B>>,
item: Item
) -> Result<(), <Either<A, B> as Sink<Item>>::Error>
fn poll_flush(
self: Pin<&mut Either<A, B>>,
cx: &mut Context
) -> Poll<Result<(), <Either<A, B> as Sink<Item>>::Error>>[src]
self: Pin<&mut Either<A, B>>,
cx: &mut Context
) -> Poll<Result<(), <Either<A, B> as Sink<Item>>::Error>>
fn poll_close(
self: Pin<&mut Either<A, B>>,
cx: &mut Context
) -> Poll<Result<(), <Either<A, B> as Sink<Item>>::Error>>[src]
self: Pin<&mut Either<A, B>>,
cx: &mut Context
) -> Poll<Result<(), <Either<A, B> as Sink<Item>>::Error>>
Auto Trait Implementations
impl<A, B> Unpin for Either<A, B> where
A: Unpin,
B: Unpin,
A: Unpin,
B: Unpin,
impl<A, B> Send for Either<A, B> where
A: Send,
B: Send,
A: Send,
B: Send,
impl<A, B> Sync for Either<A, B> where
A: Sync,
B: Sync,
A: Sync,
B: Sync,
Blanket Implementations
impl<T> From<T> for T[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T[src]
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<F, T, E> TryFuture for F where
F: Future<Output = Result<T, E>> + ?Sized, [src]
F: Future<Output = Result<T, E>> + ?Sized,
type Ok = T
The type of successful values yielded by this future
type Error = E
The type of failures yielded by this future
fn try_poll(self: Pin<&mut F>, cx: &mut Context) -> Poll<<F as Future>::Output>[src]
impl<S, T, E> TryStream for S where
S: Stream<Item = Result<T, E>> + ?Sized, [src]
S: Stream<Item = Result<T, E>> + ?Sized,
type Ok = T
The type of successful values yielded by this future
type Error = E
The type of failures yielded by this future
fn try_poll_next(
self: Pin<&mut S>,
cx: &mut Context
) -> Poll<Option<Result<<S as TryStream>::Ok, <S as TryStream>::Error>>>[src]
self: Pin<&mut S>,
cx: &mut Context
) -> Poll<Option<Result<<S as TryStream>::Ok, <S as TryStream>::Error>>>
impl<T> StreamExt for T where
T: Stream + ?Sized, [src]
T: Stream + ?Sized,
ⓘImportant traits for Next<'_, St>fn next(&mut self) -> Next<Self> where
Self: Unpin, [src]
Self: Unpin,
ⓘImportant traits for StreamFuture<St>fn into_future(self) -> StreamFuture<Self> where
Self: Unpin, [src]
Self: Unpin,
fn map<T, F>(self, f: F) -> Map<Self, F> where
F: FnMut(Self::Item) -> T, [src]
F: FnMut(Self::Item) -> T,
fn enumerate(self) -> Enumerate<Self>[src]
fn filter<Fut, F>(self, f: F) -> Filter<Self, Fut, F> where
F: FnMut(&Self::Item) -> Fut,
Fut: Future<Output = bool>, [src]
F: FnMut(&Self::Item) -> Fut,
Fut: Future<Output = bool>,
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]
F: FnMut(Self::Item) -> Fut,
Fut: Future<Output = Option<T>>,
fn then<Fut, F>(self, f: F) -> Then<Self, Fut, F> where
F: FnMut(Self::Item) -> Fut,
Fut: Future, [src]
F: FnMut(Self::Item) -> Fut,
Fut: Future,
ⓘImportant traits for Collect<St, C>fn collect<C>(self) -> Collect<Self, C> where
C: Default + Extend<Self::Item>, [src]
C: Default + Extend<Self::Item>,
ⓘImportant traits for Concat<St>fn concat(self) -> Concat<Self> where
Self::Item: Extend<<Self::Item as IntoIterator>::Item>,
Self::Item: IntoIterator,
Self::Item: Default, [src]
Self::Item: Extend<<Self::Item as IntoIterator>::Item>,
Self::Item: IntoIterator,
Self::Item: Default,
ⓘImportant traits for Fold<St, Fut, T, F>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]
F: FnMut(T, Self::Item) -> Fut,
Fut: Future<Output = T>,
fn flatten(self) -> Flatten<Self> where
Self::Item: Stream, [src]
Self::Item: Stream,
fn skip_while<Fut, F>(self, f: F) -> SkipWhile<Self, Fut, F> where
F: FnMut(&Self::Item) -> Fut,
Fut: Future<Output = bool>, [src]
F: FnMut(&Self::Item) -> Fut,
Fut: Future<Output = bool>,
fn take_while<Fut, F>(self, f: F) -> TakeWhile<Self, Fut, F> where
F: FnMut(&Self::Item) -> Fut,
Fut: Future<Output = bool>, [src]
F: FnMut(&Self::Item) -> Fut,
Fut: Future<Output = bool>,
ⓘImportant traits for ForEach<St, Fut, F>fn for_each<Fut, F>(self, f: F) -> ForEach<Self, Fut, F> where
F: FnMut(Self::Item) -> Fut,
Fut: Future<Output = ()>, [src]
F: FnMut(Self::Item) -> Fut,
Fut: Future<Output = ()>,
fn take(self, n: usize) -> Take<Self>[src]
fn skip(self, n: usize) -> Skip<Self>[src]
fn fuse(self) -> Fuse<Self>[src]
fn by_ref(&mut self) -> &mut Self[src]
fn zip<St>(self, other: St) -> Zip<Self, St> where
St: Stream, [src]
St: Stream,
fn chain<St>(self, other: St) -> Chain<Self, St> where
St: Stream<Item = Self::Item>, [src]
St: Stream<Item = Self::Item>,
fn peekable(self) -> Peekable<Self>[src]
ⓘImportant traits for Forward<St, Si>fn forward<S>(self, sink: S) -> Forward<Self, S> where
S: Sink<Self::Ok>,
Self: TryStream<Error = <S as Sink<Self::Ok>>::Error>, [src]
S: Sink<Self::Ok>,
Self: TryStream<Error = <S as Sink<Self::Ok>>::Error>,
fn inspect<F>(self, f: F) -> Inspect<Self, F> where
F: FnMut(&Self::Item), [src]
F: FnMut(&Self::Item),
ⓘImportant traits for Either<A, B>fn left_stream<B>(self) -> Either<Self, B> where
B: Stream<Item = Self::Item>, [src]
B: Stream<Item = Self::Item>,
ⓘImportant traits for Either<A, B>fn right_stream<B>(self) -> Either<B, Self> where
B: Stream<Item = Self::Item>, [src]
B: Stream<Item = Self::Item>,
fn poll_next_unpin(&mut self, cx: &mut Context) -> Poll<Option<Self::Item>> where
Self: Unpin, [src]
Self: Unpin,
ⓘImportant traits for SelectNextSome<'_, St>fn select_next_some(&mut self) -> SelectNextSome<Self> where
Self: Unpin + FusedStream, [src]
Self: Unpin + FusedStream,
impl<S> TryStreamExt for S where
S: TryStream + ?Sized, [src]
S: TryStream + ?Sized,
fn err_into<E>(self) -> ErrInto<Self, E> where
Self::Error: Into<E>, [src]
Self::Error: Into<E>,
fn map_ok<T, F>(self, f: F) -> MapOk<Self, F> where
F: FnMut(Self::Ok) -> T, [src]
F: FnMut(Self::Ok) -> T,
fn map_err<E, F>(self, f: F) -> MapErr<Self, F> where
F: FnMut(Self::Error) -> E, [src]
F: FnMut(Self::Error) -> E,
fn and_then<Fut, F>(self, f: F) -> AndThen<Self, Fut, F> where
F: FnMut(Self::Ok) -> Fut,
Fut: TryFuture<Error = Self::Error>, [src]
F: FnMut(Self::Ok) -> Fut,
Fut: TryFuture<Error = Self::Error>,
fn or_else<Fut, F>(self, f: F) -> OrElse<Self, Fut, F> where
F: FnMut(Self::Error) -> Fut,
Fut: TryFuture<Ok = Self::Ok>, [src]
F: FnMut(Self::Error) -> Fut,
Fut: TryFuture<Ok = Self::Ok>,
fn inspect_ok<F>(self, f: F) -> InspectOk<Self, F> where
F: FnMut(&Self::Ok), [src]
F: FnMut(&Self::Ok),
fn inspect_err<F>(self, f: F) -> InspectErr<Self, F> where
F: FnMut(&Self::Error), [src]
F: FnMut(&Self::Error),
fn into_stream(self) -> IntoStream<Self>[src]
ⓘImportant traits for TryNext<'_, St>fn try_next(&mut self) -> TryNext<Self> where
Self: Unpin, [src]
Self: Unpin,
ⓘImportant traits for TryForEach<St, Fut, F>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]
F: FnMut(Self::Ok) -> Fut,
Fut: TryFuture<Ok = (), Error = Self::Error>,
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]
F: FnMut(&Self::Ok) -> Fut,
Fut: TryFuture<Ok = bool, Error = Self::Error>,
ⓘImportant traits for TryCollect<St, C>fn try_collect<C>(self) -> TryCollect<Self, C> where
C: Default + Extend<Self::Ok>, [src]
C: Default + Extend<Self::Ok>,
fn try_filter<Fut, F>(self, f: F) -> TryFilter<Self, Fut, F> where
F: FnMut(&Self::Ok) -> Fut,
Fut: Future<Output = bool>, [src]
F: FnMut(&Self::Ok) -> Fut,
Fut: Future<Output = bool>,
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]
F: FnMut(Self::Ok) -> Fut,
Fut: TryFuture<Ok = Option<T>, Error = Self::Error>,
fn try_flatten(self) -> TryFlatten<Self> where
Self::Ok: TryStream,
<Self::Ok as TryStream>::Error: From<Self::Error>, [src]
Self::Ok: TryStream,
<Self::Ok as TryStream>::Error: From<Self::Error>,
ⓘImportant traits for TryFold<St, Fut, T, F>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]
F: FnMut(T, Self::Ok) -> Fut,
Fut: TryFuture<Ok = T, Error = Self::Error>,
ⓘImportant traits for TryConcat<St>fn try_concat(self) -> TryConcat<Self> where
Self::Ok: Extend<<Self::Ok as IntoIterator>::Item>,
Self::Ok: IntoIterator,
Self::Ok: Default, [src]
Self::Ok: Extend<<Self::Ok as IntoIterator>::Item>,
Self::Ok: IntoIterator,
Self::Ok: Default,
fn try_poll_next_unpin(
&mut self,
cx: &mut Context
) -> Poll<Option<Result<Self::Ok, Self::Error>>> where
Self: Unpin, [src]
&mut self,
cx: &mut Context
) -> Poll<Option<Result<Self::Ok, Self::Error>>> where
Self: Unpin,
impl<T> FutureExt for T where
T: Future + ?Sized, [src]
T: Future + ?Sized,
ⓘImportant traits for Map<Fut, F>fn map<U, F>(self, f: F) -> Map<Self, F> where
F: FnOnce(Self::Output) -> U, [src]
F: FnOnce(Self::Output) -> U,
ⓘImportant traits for Then<Fut1, Fut2, F>fn then<Fut, F>(self, f: F) -> Then<Self, Fut, F> where
F: FnOnce(Self::Output) -> Fut,
Fut: Future, [src]
F: FnOnce(Self::Output) -> Fut,
Fut: Future,
ⓘImportant traits for Either<A, B>fn left_future<B>(self) -> Either<Self, B> where
B: Future<Output = Self::Output>, [src]
B: Future<Output = Self::Output>,
ⓘImportant traits for Either<A, B>fn right_future<A>(self) -> Either<A, Self> where
A: Future<Output = Self::Output>, [src]
A: Future<Output = Self::Output>,
fn into_stream(self) -> IntoStream<Self>[src]
ⓘImportant traits for Flatten<Fut>fn flatten(self) -> Flatten<Self> where
Self::Output: Future, [src]
Self::Output: Future,
fn flatten_stream(self) -> FlattenStream<Self> where
Self::Output: Stream, [src]
Self::Output: Stream,
ⓘImportant traits for Fuse<Fut>fn fuse(self) -> Fuse<Self>[src]
ⓘImportant traits for Inspect<Fut, F>fn inspect<F>(self, f: F) -> Inspect<Self, F> where
F: FnOnce(&Self::Output), [src]
F: FnOnce(&Self::Output),
ⓘImportant traits for UnitError<Fut>fn unit_error(self) -> UnitError<Self>[src]
ⓘImportant traits for NeverError<Fut>fn never_error(self) -> NeverError<Self>[src]
fn poll_unpin(&mut self, cx: &mut Context) -> Poll<Self::Output> where
Self: Unpin, [src]
Self: Unpin,
fn now_or_never(self) -> Option<Self::Output>[src]
impl<Fut> TryFutureExt for Fut where
Fut: TryFuture + ?Sized, [src]
Fut: TryFuture + ?Sized,
fn flatten_sink<Item>(self) -> FlattenSink<Self, Self::Ok> where
Self::Ok: Sink<Item>,
<Self::Ok as Sink<Item>>::Error == Self::Error, [src]
Self::Ok: Sink<Item>,
<Self::Ok as Sink<Item>>::Error == Self::Error,
ⓘImportant traits for MapOk<Fut, F>fn map_ok<T, F>(self, f: F) -> MapOk<Self, F> where
F: FnOnce(Self::Ok) -> T, [src]
F: FnOnce(Self::Ok) -> T,
ⓘImportant traits for MapErr<Fut, F>fn map_err<E, F>(self, f: F) -> MapErr<Self, F> where
F: FnOnce(Self::Error) -> E, [src]
F: FnOnce(Self::Error) -> E,
ⓘImportant traits for ErrInto<Fut, E>fn err_into<E>(self) -> ErrInto<Self, E> where
Self::Error: Into<E>, [src]
Self::Error: Into<E>,
ⓘImportant traits for AndThen<Fut1, Fut2, F>fn and_then<Fut, F>(self, f: F) -> AndThen<Self, Fut, F> where
F: FnOnce(Self::Ok) -> Fut,
Fut: TryFuture<Error = Self::Error>, [src]
F: FnOnce(Self::Ok) -> Fut,
Fut: TryFuture<Error = Self::Error>,
ⓘImportant traits for OrElse<Fut1, Fut2, F>fn or_else<Fut, F>(self, f: F) -> OrElse<Self, Fut, F> where
F: FnOnce(Self::Error) -> Fut,
Fut: TryFuture<Ok = Self::Ok>, [src]
F: FnOnce(Self::Error) -> Fut,
Fut: TryFuture<Ok = Self::Ok>,
ⓘImportant traits for InspectOk<Fut, F>fn inspect_ok<F>(self, f: F) -> InspectOk<Self, F> where
F: FnOnce(&Self::Ok), [src]
F: FnOnce(&Self::Ok),
ⓘImportant traits for InspectErr<Fut, F>fn inspect_err<F>(self, f: F) -> InspectErr<Self, F> where
F: FnOnce(&Self::Error), [src]
F: FnOnce(&Self::Error),
fn try_flatten_stream(self) -> TryFlattenStream<Self> where
Self::Ok: TryStream,
<Self::Ok as TryStream>::Error == Self::Error, [src]
Self::Ok: TryStream,
<Self::Ok as TryStream>::Error == Self::Error,
ⓘImportant traits for UnwrapOrElse<Fut, F>fn unwrap_or_else<F>(self, f: F) -> UnwrapOrElse<Self, F> where
F: FnOnce(Self::Error) -> Self::Ok, [src]
F: FnOnce(Self::Error) -> Self::Ok,
ⓘImportant traits for IntoFuture<Fut>fn into_future(self) -> IntoFuture<Self>[src]
fn try_poll_unpin(
&mut self,
cx: &mut Context
) -> Poll<Result<Self::Ok, Self::Error>> where
Self: Unpin, [src]
&mut self,
cx: &mut Context
) -> Poll<Result<Self::Ok, Self::Error>> where
Self: Unpin,
impl<T, Item> SinkExt<Item> for T where
T: Sink<Item> + ?Sized, [src]
T: Sink<Item> + ?Sized,
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]
E: From<Self::Error>,
F: FnMut(U) -> Fut,
Fut: Future<Output = Result<Item, E>>,
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]
F: FnMut(U) -> St,
St: Stream<Item = Result<Item, Self::Error>>,
fn sink_map_err<E, F>(self, f: F) -> SinkMapErr<Self, F> where
F: FnOnce(Self::Error) -> E, [src]
F: FnOnce(Self::Error) -> E,
fn sink_err_into<E>(self) -> SinkErrInto<Self, Item, E> where
Self::Error: Into<E>, [src]
Self::Error: Into<E>,
ⓘImportant traits for Close<'_, Si, Item>fn close(&mut self) -> Close<Self, Item> where
Self: Unpin, [src]
Self: Unpin,
fn fanout<Si>(self, other: Si) -> Fanout<Self, Si> where
Item: Clone,
Si: Sink<Item, Error = Self::Error>, [src]
Item: Clone,
Si: Sink<Item, Error = Self::Error>,
ⓘImportant traits for Flush<'_, Si, Item>fn flush(&mut self) -> Flush<Self, Item> where
Self: Unpin, [src]
Self: Unpin,
ⓘImportant traits for Send<'_, Si, Item>fn send(&mut self, item: Item) -> Send<Self, Item> where
Self: Unpin, [src]
Self: Unpin,
ⓘImportant traits for SendAll<'_, Si, St>fn send_all<St>(&'a mut self, stream: &'a mut St) -> SendAll<'a, Self, St> where
Self: Unpin,
St: TryStream<Ok = Item, Error = Self::Error> + Stream + Unpin + ?Sized, [src]
Self: Unpin,
St: TryStream<Ok = Item, Error = Self::Error> + Stream + Unpin + ?Sized,
ⓘImportant traits for Either<A, B>fn left_sink<Si2>(self) -> Either<Self, Si2> where
Si2: Sink<Item, Error = Self::Error>, [src]
Si2: Sink<Item, Error = Self::Error>,
ⓘImportant traits for Either<A, B>fn right_sink<Si1>(self) -> Either<Si1, Self> where
Si1: Sink<Item, Error = Self::Error>, [src]
Si1: Sink<Item, Error = Self::Error>,