[−][src]Crate retry_fn
retry
Function for executing retry either as a closure with a std-based sleep
(thread::sleep
) or using either of the most popular async runtimes. See
tokio
or async-std
module for futures-aware versions.
Sync Example
use retry_fn::{retry, RetryResult, strategy::ExponentialBackoff}; let mut count = 0; let res = retry(ExponentialBackoff::new(Duration::from_secs(2)), |op| { if op.retries >= 3 { RetryResult::<&str, _>::Err(io::Error::new( io::ErrorKind::TimedOut, "timed out", )) } else { count += 1; RetryResult::Retry() } }); assert_eq!(count, 3); assert!(res.is_err()); Ok(())
Modules
strategy | Different iterators to retry using |
Structs
RetryOp |
|
Enums
RetryErr | Error type for retry |
RetryResult | What to do with the current result of the function |
Functions
retry | Retry a function on some time interval |
retry_immediate | retry with the 'immediate' strategy, i.e. no wait in between attempts |