use futures::future::OptionFuture; pub trait OptionExt { fn map_async O>(self, f: F) -> OptionFuture; } impl OptionExt for Option { fn map_async O>(self, f: F) -> OptionFuture { OptionFuture::<_>::from(self.map(f)) } }