[−][src]Struct futures::channel::oneshot::Receiver
#[must_use = "futures do nothing unless you `.await` or poll them"] 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>
The type of value produced on completion.
fn poll(
self: Pin<&mut Receiver<T>>,
cx: &mut Context
) -> Poll<Result<T, Canceled>>
[src][−]
self: Pin<&mut Receiver<T>>,
cx: &mut Context
) -> Poll<Result<T, Canceled>>
Attempt to resolve the future to a final value, registering the current task for wakeup if the value is not yet available. Read more
impl<T> Debug for Receiver<T> where
T: Debug,
[src][+]
T: Debug,
fn fmt(&self, f: &mut Formatter) -> Result<(), Error>
[src][−]
Formats the value using the given formatter. Read more
impl<T> Unpin for Receiver<T>
[src]
impl<T> Drop for Receiver<T>
[src][+]
fn drop(&mut self)
[src][−]
Executes the destructor for this type. Read more
Auto Trait Implementations
impl<T> Send for Receiver<T> where
T: Send,
T: Send,
impl<T> Sync for Receiver<T> where
T: Send,
T: Send,
impl<T> !UnwindSafe for Receiver<T>
impl<T> !RefUnwindSafe for Receiver<T>
Blanket Implementations
impl<T> From<T> for T
[src][+]
impl<T, U> Into<U> for T where
U: From<T>,
[src][+]
U: From<T>,
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][−]
Performs the conversion.
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][−]
Performs the conversion.
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src][+]
T: ?Sized,
ⓘImportant traits for &'_ mut Ffn borrow_mut(&mut self) -> &mut T
[src][−]
Mutably borrows from an owned value. Read more
impl<T> Borrow<T> for T where
T: ?Sized,
[src][+]
T: ?Sized,
ⓘImportant traits for &'_ mut Ffn borrow(&self) -> &T
[src][−]
Immutably borrows from an owned value. Read more
impl<T> Any for T where
T: 'static + ?Sized,
[src][+]
T: 'static + ?Sized,
fn type_id(&self) -> TypeId
[src][−]
Gets the TypeId
of self
. Read more
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][−]
Poll this TryFuture
as if it were a Future
. Read more
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,
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>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,
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>fn left_future<B>(self) -> Either<Self, B> where
B: Future<Output = Self::Output>,
[src][−]
B: Future<Output = Self::Output>,
Wrap this future in an Either
future, making it the left-hand variant of that Either
. Read more
ⓘ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>,
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>fn flatten(self) -> Flatten<Self> where
Self::Output: Future,
[src][−]
Self::Output: Future,
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][−]
Self::Output: Stream,
Flatten the execution of this future when the successful result of this future is a stream. Read more
ⓘImportant traits for Fuse<Fut>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>fn inspect<F>(self, f: F) -> Inspect<Self, F> where
F: FnOnce(&Self::Output),
[src][−]
F: FnOnce(&Self::Output),
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][−]
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>>;
Self: UnwindSafe,
Catches unwinding panics while polling the future. Read more
ⓘImportant traits for Shared<Fut>fn shared(self) -> Shared<Self> where
Self::Output: Clone,
[src][−]
Self::Output: Clone,
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>fn boxed<'a>(self) -> Pin<Box<dyn Future<Output = Self::Output> + 'a + Send>> where
Self: Send + 'a,
[src][−]
Self: Send + 'a,
Wrap the future in a Box, pinning it.
ⓘImportant traits for Pin<P>fn boxed_local<'a>(self) -> Pin<Box<dyn Future<Output = Self::Output> + 'a>> where
Self: 'a,
[src][−]
Self: 'a,
Wrap the future in a Box, pinning it. Read more
ⓘImportant traits for UnitError<Fut>fn unit_error(self) -> UnitError<Self>
[src][−]
Turns a Future<Output = T>
into a TryFuture<Ok = T, Error = ()
>. Read more
ⓘImportant traits for NeverError<Fut>Important traits for NeverError<Fut>
impl<Fut, T> Future for NeverError<Fut> where
Fut: Future<Output = T>, type Output = Result<T, Infallible>;
fn never_error(self) -> NeverError<Self>
[src][−]
Important traits for NeverError<Fut>
impl<Fut, T> Future for NeverError<Fut> where
Fut: Future<Output = T>, type Output = Result<T, Infallible>;
Turns a Future<Output = T>
into a TryFuture<Ok = T, Error = Never
>. Read more
fn poll_unpin(&mut self, cx: &mut Context) -> Poll<Self::Output> where
Self: Unpin,
[src][−]
Self: Unpin,
A convenience for calling Future::poll
on Unpin
future types.
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,
Flattens the execution of this future when the successful result of this future is a [Sink
]. Read more
ⓘ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,
Maps this future's success value to a different value. Read more
ⓘ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,
Maps this future's error value to a different value. Read more
ⓘImportant traits for ErrInto<Fut, E>fn err_into<E>(self) -> ErrInto<Self, E> where
Self::Error: Into<E>,
[src][−]
Self::Error: Into<E>,
Maps this future's Error
to a new error type using the Into
trait. Read more
ⓘ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>,
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>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>,
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 InspectOk<Fut, F>fn inspect_ok<F>(self, f: F) -> InspectOk<Self, F> where
F: FnOnce(&Self::Ok),
[src][−]
F: FnOnce(&Self::Ok),
Do something with the success value of a future before passing it on. Read more
ⓘ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),
Do something with the error value of a future before passing it on. Read more
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,
Flatten the execution of this future when the successful result of this future is a stream. Read more
ⓘ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,
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][−]
Self: Unpin,
Wraps a [TryFuture
] into a future compatable with libraries using futures 0.1 future definitons. Requires the compat
feature to enable. 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][−]
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>;
Wraps a [TryFuture
] into a type that implements Future
. Read more
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,
A convenience method for calling [TryFuture::try_poll
] on [Unpin
] future types. Read more
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
[+]
V: MultiLane<T>,