async fn rpc_timeout<T>( operation: &'static str, future: impl Future<Output = Result<T, impl Display>>, ) -> Result<T>