Enum futures_util::future::Either [−][src]
pub enum Either<A, B> {
Left(A),
Right(B),
}
Expand description
Combines two different futures, streams, or sinks having the same associated types into a single type.
This is useful when conditionally choosing between two distinct future types:
use futures::future::Either;
let cond = true;
let fut = if cond {
Either::Left(async move { 12 })
} else {
Either::Right(async move { 44 })
};
assert_eq!(fut.await, 12);
Variants
Left(A)
First branch of the type
Right(B)
Second branch of the type
Implementations
Factor out a homogeneous type from an either of pairs.
Here, the homogeneous type is the first element of the pairs.
Factor out a homogeneous type from an either of pairs.
Here, the homogeneous type is the second element of the pairs.
Extract the value of an either over two equivalent types.
Trait Implementations
Attempt to return the contents of the internal buffer, filling it with more data from the inner reader if it is empty. Read more
Attempt to read from the AsyncRead
into buf
. Read more
impl<A, B> FusedFuture for Either<A, B> where
A: FusedFuture,
B: FusedFuture<Output = A::Output>,
impl<A, B> FusedFuture for Either<A, B> where
A: FusedFuture,
B: FusedFuture<Output = A::Output>,
Returns true
if the underlying future should no longer be polled.
Returns true
if the stream should no longer be polled.
Attempt to pull out the next value of this stream, registering the
current task for wakeup if the value is not yet available, and returning
None
if the stream is exhausted. Read more
Auto Trait Implementations
impl<A, B> RefUnwindSafe for Either<A, B> where
A: RefUnwindSafe,
B: RefUnwindSafe,
impl<A, B> UnwindSafe for Either<A, B> where
A: UnwindSafe,
B: UnwindSafe,
Blanket Implementations
io
only.Creates a future which will wait for a non-empty buffer to be available from this I/O object or EOF to be reached. Read more
io
only.A convenience for calling AsyncBufRead::consume
on Unpin
IO types. Read more
io
only.Creates a future which will read all the bytes associated with this I/O
object into buf
until the delimiter byte
or EOF is reached.
This method is the async equivalent to BufRead::read_until
. Read more
io
only.Creates a future which will read all the bytes associated with this I/O
object into buf
until a newline (the 0xA byte) or EOF is reached,
This method is the async equivalent to BufRead::read_line
. Read more
io
only.Creates an adaptor which will chain this stream with another. Read more
io
only.Tries to read some bytes directly into the given buf
in asynchronous
manner, returning a future type. Read more
fn read_vectored<'a>(
&'a mut self,
bufs: &'a mut [IoSliceMut<'a>]
) -> ReadVectored<'a, Self>ⓘNotable traits for ReadVectored<'_, R>impl<R: AsyncRead + ?Sized + Unpin> Future for ReadVectored<'_, R> type Output = Result<usize>;
where
Self: Unpin,
fn read_vectored<'a>(
&'a mut self,
bufs: &'a mut [IoSliceMut<'a>]
) -> ReadVectored<'a, Self>ⓘNotable traits for ReadVectored<'_, R>impl<R: AsyncRead + ?Sized + Unpin> Future for ReadVectored<'_, R> type Output = Result<usize>;
where
Self: Unpin,
impl<R: AsyncRead + ?Sized + Unpin> Future for ReadVectored<'_, R> type Output = Result<usize>;
io
only.Creates a future which will read from the AsyncRead
into bufs
using vectored
IO operations. Read more
io
only.Creates a future which will read exactly enough bytes to fill buf
,
returning an error if end of file (EOF) is hit sooner. Read more
io
only.Creates a future which will read all the bytes from this AsyncRead
. Read more
fn read_to_string<'a>(
&'a mut self,
buf: &'a mut String
) -> ReadToString<'a, Self>ⓘNotable traits for ReadToString<'_, A>impl<A> Future for ReadToString<'_, A> where
A: AsyncRead + ?Sized + Unpin, type Output = Result<usize>;
where
Self: Unpin,
fn read_to_string<'a>(
&'a mut self,
buf: &'a mut String
) -> ReadToString<'a, Self>ⓘNotable traits for ReadToString<'_, A>impl<A> Future for ReadToString<'_, A> where
A: AsyncRead + ?Sized + Unpin, type Output = Result<usize>;
where
Self: Unpin,
impl<A> Future for ReadToString<'_, A> where
A: AsyncRead + ?Sized + Unpin, type Output = Result<usize>;
io
only.Creates a future which will read all the bytes from this AsyncRead
. Read more
io
only.Helper method for splitting this read/write object into two halves. Read more
io
only.Creates an AsyncRead adapter which will read at most limit
bytes
from the underlying reader. Read more
io
and io-compat
only.Wraps an AsyncRead
in a compatibility wrapper that allows it to be
used as a futures 0.1 / tokio-io 0.1 AsyncRead
. If the wrapped type
implements AsyncWrite
as well, the result will also implement the
futures 0.1 / tokio 0.1 AsyncWrite
trait. Read more
io
only.Creates a future which will seek an IO object, and then yield the new position in the object and the object itself. Read more
io
only.Creates a future which will return the current seek position from the start of the stream. Read more
io
only.Creates a future which will entirely flush this AsyncWrite
. Read more
io
only.Creates a future which will entirely close this AsyncWrite
.
io
only.Creates a future which will write bytes from buf
into the object. Read more
fn write_vectored<'a>(
&'a mut self,
bufs: &'a [IoSlice<'a>]
) -> WriteVectored<'a, Self>ⓘNotable traits for WriteVectored<'_, W>impl<W: AsyncWrite + ?Sized + Unpin> Future for WriteVectored<'_, W> type Output = Result<usize>;
where
Self: Unpin,
fn write_vectored<'a>(
&'a mut self,
bufs: &'a [IoSlice<'a>]
) -> WriteVectored<'a, Self>ⓘNotable traits for WriteVectored<'_, W>impl<W: AsyncWrite + ?Sized + Unpin> Future for WriteVectored<'_, W> type Output = Result<usize>;
where
Self: Unpin,
impl<W: AsyncWrite + ?Sized + Unpin> Future for WriteVectored<'_, W> type Output = Result<usize>;
io
only.Creates a future which will write bytes from bufs
into the object using vectored
IO operations. Read more
fn write_all_vectored<'a>(
&'a mut self,
bufs: &'a mut [IoSlice<'a>]
) -> WriteAllVectored<'a, Self>ⓘNotable traits for WriteAllVectored<'_, W>impl<W: AsyncWrite + ?Sized + Unpin> Future for WriteAllVectored<'_, W> type Output = Result<()>;
where
Self: Unpin,
fn write_all_vectored<'a>(
&'a mut self,
bufs: &'a mut [IoSlice<'a>]
) -> WriteAllVectored<'a, Self>ⓘNotable traits for WriteAllVectored<'_, W>impl<W: AsyncWrite + ?Sized + Unpin> Future for WriteAllVectored<'_, W> type Output = Result<()>;
where
Self: Unpin,
impl<W: AsyncWrite + ?Sized + Unpin> Future for WriteAllVectored<'_, W> type Output = Result<()>;
io
only.Attempts to write multiple buffers into this writer. Read more
fn compat_write(self) -> Compat<Self>ⓘNotable traits for Compat<R>impl<R: AsyncRead03 + Unpin> Read for Compat<R>impl<W: AsyncWrite03 + Unpin> Write for Compat<W>
where
Self: Sized + Unpin,
fn compat_write(self) -> Compat<Self>ⓘNotable traits for Compat<R>impl<R: AsyncRead03 + Unpin> Read for Compat<R>impl<W: AsyncWrite03 + Unpin> Write for Compat<W>
where
Self: Sized + Unpin,
impl<R: AsyncRead03 + Unpin> Read for Compat<R>impl<W: AsyncWrite03 + Unpin> Write for Compat<W>
io
and io-compat
only.Wraps an AsyncWrite
in a compatibility wrapper that allows it to be
used as a futures 0.1 / tokio-io 0.1 AsyncWrite
.
Requires the io-compat
feature to enable. Read more
Mutably borrows from an owned value. Read more
into_future
)The output that the future will produce on completion.
type Future = F
type Future = F
into_future
)Which kind of future are we turning this into?
into_future
)Creates a future from a value.
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>>,
Self: Sized,
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>>,
Self: Sized,
sink
only.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,
Self: Sized,
fn sink_map_err<E, F>(self, f: F) -> SinkMapErr<Self, F> where
F: FnOnce(Self::Error) -> E,
Self: Sized,
sink
only.Transforms the error returned by the sink.
fn sink_err_into<E>(self) -> SinkErrInto<Self, Item, E> where
Self: Sized,
Self::Error: Into<E>,
fn sink_err_into<E>(self) -> SinkErrInto<Self, Item, E> where
Self: Sized,
Self::Error: Into<E>,
sink
only.Map this sink’s error to a different error type using the Into
trait. Read more
sink
only.Adds a fixed-size buffer to the current sink. Read more
sink
only.Close the sink.
sink
only.Flush the sink, processing all pending items. Read more
sink
only.A future that completes after the given item has been fully processed into the sink, including flushing. Read more
sink
only.A future that completes after the given item has been received by the sink. Read more
sink
only.A future that completes after the given stream has been fully processed into the sink, including flushing. Read more
sink
only.Wrap this sink in an Either
sink, making it the left-hand variant
of that Either
. Read more
sink
only.Wrap this stream in an Either
stream, making it the right-hand variant
of that Either
. Read more
sink
and compat
only.sink
only.A convenience method for calling Sink::poll_ready
on Unpin
sink types. Read more
sink
only.A convenience method for calling Sink::start_send
on Unpin
sink types. Read more
sink
only.A convenience method for calling Sink::poll_flush
on Unpin
sink types. Read more