logo
pub trait IntoFuture {
    type Output;
    type Future: Future<Output = Self::Output>;
    fn into_future(self) -> Self::Future;
}
Expand description

Convert a type into a Future.

Examples

use async_std::future::{Future, IntoFuture};
use async_std::io;
use async_std::pin::Pin;

struct Client;

impl Client {
    pub async fn send(self) -> io::Result<()> {
        // Send a request
        Ok(())
    }
}

impl IntoFuture for Client {
    type Output = io::Result<()>;

    type Future = Pin<Box<dyn Future<Output = Self::Output>>>;

    fn into_future(self) -> Self::Future {
        Box::pin(async {
            self.send().await
        })
    }
}

Associated Types

The type of value produced on completion.

Which kind of future are we turning this into?

Required methods

Create a future from a value

Implementors