[−][src]Struct futures::future::FutureObj
A custom trait object for polling futures, roughly akin to
Box<dyn Future<Output = T> + Send + 'a>
.
This custom trait object was introduced for two reasons:
- Currently it is not possible to take
dyn Trait
by value andBox<dyn Trait>
is not available in no_std contexts. - The
Future
trait is currently not object safe: TheFuture::poll
method makes uses the arbitrary self types feature and traits in which this feature is used are currently not object safe due to current compiler limitations. (See tracking issue for arbitrary self types for more information #44874)
Methods
impl<'a, T> FutureObj<'a, T>
[src]
ⓘImportant traits for FutureObj<'a, T>pub fn new<F>(f: F) -> FutureObj<'a, T> where
F: UnsafeFutureObj<'a, T> + Send,
[src]
F: UnsafeFutureObj<'a, T> + Send,
Create a FutureObj
from a custom trait object representation.
Trait Implementations
impl<'a, T> Unpin for FutureObj<'a, T>
[src]
impl<'a, T> Debug for FutureObj<'a, T>
[src]
impl<'a, T> Future for FutureObj<'a, T>
[src]
type Output = T
🔬 This is a nightly-only experimental API. (futures_api
)
futures in libcore are unstable
The type of value produced on completion.
fn poll(self: Pin<&mut FutureObj<'a, T>>, cx: &mut Context) -> Poll<T>
[src]
impl<'a, F> From<Pin<Box<F>>> for FutureObj<'a, ()> where
F: 'a + Send + Future<Output = ()>,
[src]
F: 'a + Send + Future<Output = ()>,
impl<'a, T> From<FutureObj<'a, T>> for LocalFutureObj<'a, T>
[src]
ⓘImportant traits for LocalFutureObj<'a, T>fn from(f: FutureObj<'a, T>) -> LocalFutureObj<'a, T>
[src]
impl<'a, F> From<Box<F>> for FutureObj<'a, ()> where
F: 'a + Send + Future<Output = ()>,
[src]
F: 'a + Send + Future<Output = ()>,
impl<'a, T> Send for FutureObj<'a, T>
[src]
Auto Trait Implementations
Blanket Implementations
impl<T> From for T
[src]
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom 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> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
ⓘImportant traits for &'_ mut Ffn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> TryInto 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> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> FutureExt for T where
T: Future + ?Sized,
[src]
T: Future + ?Sized,
ⓘImportant traits for Map<Fut, F>default 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>default 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
default fn into_stream(self) -> IntoStream<Self>
[src]
Convert this future into a single element stream. Read more
ⓘImportant traits for Flatten<Fut>default 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
default 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>default 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>default 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>default fn catch_unwind(self) -> CatchUnwind<Self> where
Self: UnwindSafe,
[src]
Self: UnwindSafe,
Catches unwinding panics while polling the future. Read more
ⓘImportant traits for Shared<Fut>default 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
default 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>default fn boxed(self) -> Pin<Box<Self>>
[src]
Wrap the future in a Box, pinning it.
ⓘImportant traits for UnitError<Fut>default fn unit_error(self) -> UnitError<Self>
[src]
Turns a Future
into a TryFuture
with Error = ()
.
default 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<F, T, E> TryFuture for F where
F: Future<Output = Result<T, E>>,
[src]
F: Future<Output = Result<T, E>>,
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<Fut> TryFutureExt for Fut where
Fut: TryFuture,
[src]
Fut: TryFuture,
default fn flatten_sink<Item>(self) -> FlattenSink<Self, Self::Ok> where
Self::Ok: Sink<Item>,
<Self::Ok as Sink<Item>>::SinkError == Self::Error,
[src]
Self::Ok: Sink<Item>,
<Self::Ok as Sink<Item>>::SinkError == 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>default 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>default 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>default 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>default 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>default 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 UnwrapOrElse<Fut, F>default 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>default 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>default fn into_future(self) -> IntoFuture<Self>
[src]
Wraps a [TryFuture
] into a type that implements Future
. Read more