[][src]Struct futures::channel::oneshot::Receiver

#[must_use = "futures do nothing unless polled"]
pub struct Receiver<T> { /* fields omitted */ }

A future for a value that will be provided by another asynchronous task.

This is created by the channel function.

Methods

impl<T> Receiver<T>
[src]

pub fn close(&mut self)
[src]

Gracefully close this receiver, preventing any subsequent attempts to send to it.

Any send operation which happens after this method returns is guaranteed to fail. After calling this method, you can use Receiver::poll to determine whether a message had previously been sent.

pub fn try_recv(&mut self) -> Result<Option<T>, Canceled>
[src]

Attempts to receive a message outside of the context of a task.

Does not schedule a task wakeup or have any other side effects.

A return value of None must be considered immediately stale (out of date) unless close has been called first.

Returns an error if the sender was dropped.

Trait Implementations

impl<T> Future for Receiver<T>
[src]

type Output = Result<T, Canceled>

🔬 This is a nightly-only experimental API. (futures_api)

futures in libcore are unstable

The result of the Future.

impl<T> Unpin for Receiver<T>
[src]

impl<T> Debug for Receiver<T> where
    T: Debug
[src]

impl<T> Drop for Receiver<T>
[src]

Auto Trait Implementations

impl<T> Send for Receiver<T> where
    T: Send

impl<T> Sync for Receiver<T> where
    T: Send

Blanket Implementations

impl<T> From for T
[src]

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

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

type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

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

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

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

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

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

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

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

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

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

fn join<Fut2>(self, other: Fut2) -> Join<Self, Fut2> where
    Fut2: Future
[src]

Joins the result of two futures, waiting for them both to complete. Read more

fn join3<Fut2, Fut3>(
    self,
    future2: Fut2,
    future3: Fut3
) -> Join3<Self, Fut2, Fut3> where
    Fut2: Future,
    Fut3: Future
[src]

Same as join, but with more futures. Read more

fn join4<Fut2, Fut3, Fut4>(
    self,
    future2: Fut2,
    future3: Fut3,
    future4: Fut4
) -> Join4<Self, Fut2, Fut3, Fut4> where
    Fut2: Future,
    Fut3: Future + Future,
    Fut4: Future
[src]

Same as join, but with more futures. Read more

fn join5<Fut2, Fut3, Fut4, Fut5>(
    self,
    future2: Fut2,
    future3: Fut3,
    future4: Fut4,
    future5: Fut5
) -> Join5<Self, Fut2, Fut3, Fut4, Fut5> where
    Fut2: Future,
    Fut3: Future + Future,
    Fut4: Future,
    Fut5: Future
[src]

Same as join, but with more futures. Read more

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

Convert this future into a single element stream. Read more

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

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

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

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

Catches unwinding panics while polling the future. Read more

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

fn boxed(self) -> Pin<Box<Self>>
[src]

Wrap the future in a Box, pinning it.

fn unit_error(self) -> UnitError<Self>
[src]

Turns a Future into a TryFuture with Error = ().

fn poll_unpin(&mut self, lw: &LocalWaker) -> 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>>, 
[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
[src]

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

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

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

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

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

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

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

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 Compat<R>
fn compat(self) -> Compat<Self> where
    Self: Unpin
[src]

Wraps a [TryFuture] into a future compatable with libraries using futures 0.1 future definitons. Requires the compat feature to enable. Read more

fn into_future(self) -> IntoFuture<Self>
[src]

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

fn try_join<Fut2>(self, other: Fut2) -> TryJoin<Self, Fut2> where
    Fut2: TryFuture<Error = Self::Error>, 
[src]

Joins the result of two futures, waiting for them both to complete or for one to produce an error. Read more

fn try_join3<Fut2, Fut3>(
    self,
    future2: Fut2,
    future3: Fut3
) -> TryJoin3<Self, Fut2, Fut3> where
    Fut2: TryFuture<Error = Self::Error>,
    Fut3: TryFuture<Error = Self::Error>, 
[src]

Same as try_join, but with more futures. Read more

fn try_join4<Fut2, Fut3, Fut4>(
    self,
    future2: Fut2,
    future3: Fut3,
    future4: Fut4
) -> TryJoin4<Self, Fut2, Fut3, Fut4> where
    Fut2: TryFuture<Error = Self::Error>,
    Fut3: TryFuture<Error = Self::Error>,
    Fut4: TryFuture<Error = Self::Error>, 
[src]

Same as try_join, but with more futures. Read more

fn try_join5<Fut2, Fut3, Fut4, Fut5>(
    self,
    future2: Fut2,
    future3: Fut3,
    future4: Fut4,
    future5: Fut5
) -> TryJoin5<Self, Fut2, Fut3, Fut4, Fut5> where
    Fut2: TryFuture<Error = Self::Error>,
    Fut3: TryFuture<Error = Self::Error>,
    Fut4: TryFuture<Error = Self::Error>,
    Fut5: TryFuture<Error = Self::Error>, 
[src]

Same as try_join, but with more futures. Read more