问题 I have the following struct struct Test; impl Test { async fn function(&mut self) {} } I want to implement an std::future::Future (well, actually futures::Stream , but it's basically the same) on Test , that would poll the function . My first try looked something like this impl Future for Test { type Output = (); fn poll(self: Pin<&mut self>, cx: &mut Context<'_>) -> Poll<Self::Output> { match self.function() { Poll::Pending => Poll::Pending, Poll::Ready(_) => Poll::Ready(()), } } } Obviously