pub fn retry<A, F, R, E>( args: A, f: F, max_retries: usize, timeout: Duration, ) -> Result<R, E>where F: Fn(&mut A) -> Result<R, E>,