pub struct RetryConfig {
pub max_attempts: u32,
pub base_delay_ms: u64,
pub max_delay_ms: u64,
pub jitter_factor: f64,
pub total_timeout_ms: u64,
}Expand description
Configuration for retry behavior on transient errors.
Used by rsync and SSH operations to recover from transient network failures without blocking too long or retrying non-recoverable errors.
Fields§
§max_attempts: u32Maximum number of retry attempts (1 = no retries, just initial attempt).
base_delay_ms: u64Initial delay between retries in milliseconds.
max_delay_ms: u64Maximum delay between retries in milliseconds (caps exponential backoff).
jitter_factor: f64Jitter factor (0.0 - 1.0) to randomize delay. A value of 0.1 means ±10% randomization.
total_timeout_ms: u64Total timeout for all retry attempts in milliseconds. After this, retries stop even if max_attempts not reached.
Implementations§
Source§impl RetryConfig
impl RetryConfig
Sourcepub fn delay_for_attempt(&self, attempt: u32) -> Duration
pub fn delay_for_attempt(&self, attempt: u32) -> Duration
Calculate delay for a given attempt number (0-indexed).
Uses exponential backoff with optional jitter.
Sourcepub fn should_retry(&self, attempt: u32, elapsed: Duration) -> bool
pub fn should_retry(&self, attempt: u32, elapsed: Duration) -> bool
Check if we should retry given elapsed time since start.
Trait Implementations§
Source§impl Clone for RetryConfig
impl Clone for RetryConfig
Source§fn clone(&self) -> RetryConfig
fn clone(&self) -> RetryConfig
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for RetryConfig
impl Debug for RetryConfig
Source§impl Default for RetryConfig
impl Default for RetryConfig
Source§impl<'de> Deserialize<'de> for RetryConfig
impl<'de> Deserialize<'de> for RetryConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for RetryConfig
impl RefUnwindSafe for RetryConfig
impl Send for RetryConfig
impl Sync for RetryConfig
impl Unpin for RetryConfig
impl UnsafeUnpin for RetryConfig
impl UnwindSafe for RetryConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more