Files
brk/_src/utils/retry.rs
2025-02-23 01:25:15 +01:00

22 lines
417 B
Rust

use std::{thread::sleep, time::Duration};
pub fn retry<T>(
function: impl Fn(usize) -> color_eyre::Result<T>,
sleep_in_s: u64,
retries: usize,
) -> color_eyre::Result<T> {
let mut i = 0;
loop {
let res = function(i);
if i == retries || res.is_ok() {
return res;
} else {
sleep(Duration::from_secs(sleep_in_s));
}
i += 1;
}
}