pub async fn async_retry<T, E, F: Future<Output = Result<T, E>>>( thunk: impl FnMut() -> F, count: usize, delay: Duration, ) -> Result<T, E>