pub async fn optimistic_retry_async<Func, Fut, T, E>( ctx: &str, f: Func) -> impl Future<Output = Result<T, OptimisticRetryError<E>>>where Func: FnMut() -> Fut, Fut: Future<Output = Result<T, E>>, E: Error,