use std::future::Future; use std::pin::Pin; use std::task::{Context, Poll}; #[tokio::main] async fn main() { invoke().await } struct FutureImpl {} impl Future for FutureImpl { type Output = (); fn poll(self: Pin<&mut Self>, _cx: &mut Context<'_>) -> Poll { println!("Hello World!"); Poll::Ready(()) } } fn invoke() -> impl Future { FutureImpl {} }