pub struct SimpleRetryConfig { /* private fields */ }Expand description
Simple retry configuration implementation
This is the simplest RetryConfig implementation, with all configuration fields stored directly in the struct,
without depending on an external configuration system. Suitable for scenarios requiring direct control over all configurations.
§Features
- Simple and Direct: All fields stored directly, no configuration system needed
- Type Safe: Use Rust’s type system to ensure correct configuration
- High Performance: No configuration queries, direct field access
- Easy to Understand: Clear structure, simple code
§Example
use prism3_retry::{SimpleRetryConfig, RetryConfig, RetryDelayStrategy};
use std::time::Duration;
let mut config = SimpleRetryConfig::new();
config
.set_max_attempts(3)
.set_max_duration(Some(Duration::from_secs(30)))
.set_fixed_delay_strategy(Duration::from_secs(1));
assert_eq!(config.max_attempts(), 3);
assert_eq!(config.max_duration(), Some(Duration::from_secs(30)));§Author
Haixing Hu
Implementations§
Source§impl SimpleRetryConfig
impl SimpleRetryConfig
Sourcepub fn with_params(
max_attempts: u32,
delay_strategy: RetryDelayStrategy,
jitter_factor: f64,
max_duration: Option<Duration>,
operation_timeout: Option<Duration>,
) -> Self
pub fn with_params( max_attempts: u32, delay_strategy: RetryDelayStrategy, jitter_factor: f64, max_duration: Option<Duration>, operation_timeout: Option<Duration>, ) -> Self
Create a new SimpleRetryConfig instance with specified parameters
§Parameters
max_attempts- Maximum number of attemptsdelay_strategy- Delay strategyjitter_factor- Jitter factormax_duration- Maximum durationoperation_timeout- Single operation timeout
§Returns
Returns a new SimpleRetryConfig instance with the specified parameters
§Example
use prism3_retry::{SimpleRetryConfig, RetryDelayStrategy};
use std::time::Duration;
let config = SimpleRetryConfig::with_params(
3,
RetryDelayStrategy::fixed(Duration::from_secs(1)),
0.1,
Some(Duration::from_secs(30)),
Some(Duration::from_secs(5)),
);Trait Implementations§
Source§impl Clone for SimpleRetryConfig
impl Clone for SimpleRetryConfig
Source§fn clone(&self) -> SimpleRetryConfig
fn clone(&self) -> SimpleRetryConfig
Returns a duplicate of the value. Read more
1.0.0 · 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 SimpleRetryConfig
impl Debug for SimpleRetryConfig
Source§impl Default for SimpleRetryConfig
impl Default for SimpleRetryConfig
Source§impl RetryConfig for SimpleRetryConfig
impl RetryConfig for SimpleRetryConfig
Source§fn max_attempts(&self) -> u32
fn max_attempts(&self) -> u32
Get maximum number of attempts Read more
Source§fn set_max_attempts(&mut self, max_attempts: u32) -> &mut Self
fn set_max_attempts(&mut self, max_attempts: u32) -> &mut Self
Set maximum number of attempts
Source§fn set_max_duration(&mut self, max_duration: Option<Duration>) -> &mut Self
fn set_max_duration(&mut self, max_duration: Option<Duration>) -> &mut Self
Set maximum duration for retry execution
Source§fn set_operation_timeout(&mut self, timeout: Option<Duration>) -> &mut Self
fn set_operation_timeout(&mut self, timeout: Option<Duration>) -> &mut Self
Set single operation timeout Read more
Source§fn delay_strategy(&self) -> RetryDelayStrategy
fn delay_strategy(&self) -> RetryDelayStrategy
Get delay strategy type
Source§fn set_delay_strategy(
&mut self,
delay_strategy: RetryDelayStrategy,
) -> &mut Self
fn set_delay_strategy( &mut self, delay_strategy: RetryDelayStrategy, ) -> &mut Self
Set delay strategy type
Source§fn jitter_factor(&self) -> f64
fn jitter_factor(&self) -> f64
Get jitter factor Read more
Source§fn set_jitter_factor(&mut self, jitter_factor: f64) -> &mut Self
fn set_jitter_factor(&mut self, jitter_factor: f64) -> &mut Self
Set jitter factor
Source§const KEY_MAX_ATTEMPTS: &'static str = "retry.max_attempts"
const KEY_MAX_ATTEMPTS: &'static str = "retry.max_attempts"
Configuration key for maximum number of attempts
Source§const KEY_DELAY_STRATEGY: &'static str = "retry.delay_strategy"
const KEY_DELAY_STRATEGY: &'static str = "retry.delay_strategy"
Configuration key for delay strategy
Source§const KEY_FIXED_DELAY: &'static str = "retry.fixed_delay_millis"
const KEY_FIXED_DELAY: &'static str = "retry.fixed_delay_millis"
Configuration key for fixed delay time
Source§const KEY_RANDOM_MIN_DELAY: &'static str = "retry.random_min_delay_millis"
const KEY_RANDOM_MIN_DELAY: &'static str = "retry.random_min_delay_millis"
Configuration key for random delay minimum value
Source§const KEY_RANDOM_MAX_DELAY: &'static str = "retry.random_max_delay_millis"
const KEY_RANDOM_MAX_DELAY: &'static str = "retry.random_max_delay_millis"
Configuration key for random delay maximum value
Source§const KEY_BACKOFF_INITIAL_DELAY: &'static str = "retry.backoff_initial_delay_millis"
const KEY_BACKOFF_INITIAL_DELAY: &'static str = "retry.backoff_initial_delay_millis"
Configuration key for exponential backoff initial delay
Source§const KEY_BACKOFF_MAX_DELAY: &'static str = "retry.backoff_max_delay_millis"
const KEY_BACKOFF_MAX_DELAY: &'static str = "retry.backoff_max_delay_millis"
Configuration key for exponential backoff maximum delay
Source§const KEY_BACKOFF_MULTIPLIER: &'static str = "retry.backoff_multiplier"
const KEY_BACKOFF_MULTIPLIER: &'static str = "retry.backoff_multiplier"
Configuration key for exponential backoff multiplier
Source§const KEY_JITTER_FACTOR: &'static str = "retry.jitter_factor"
const KEY_JITTER_FACTOR: &'static str = "retry.jitter_factor"
Configuration key for jitter factor
Source§const KEY_MAX_DURATION: &'static str = "retry.max_duration_millis"
const KEY_MAX_DURATION: &'static str = "retry.max_duration_millis"
Configuration key for maximum duration of retry execution
Source§const KEY_OPERATION_TIMEOUT: &'static str = "retry.operation_timeout_millis"
const KEY_OPERATION_TIMEOUT: &'static str = "retry.operation_timeout_millis"
Configuration key for single operation timeout
Source§const DEFAULT_MAX_ATTEMPTS: u32 = 5u32
const DEFAULT_MAX_ATTEMPTS: u32 = 5u32
Default maximum number of attempts for retry mechanism
Source§const DEFAULT_DELAY_STRATEGY: RetryDelayStrategy = _
const DEFAULT_DELAY_STRATEGY: RetryDelayStrategy = _
Default delay strategy
Source§const DEFAULT_FIXED_DELAY_MILLIS: u64 = 1_000u64
const DEFAULT_FIXED_DELAY_MILLIS: u64 = 1_000u64
Default fixed delay time in milliseconds
Source§const DEFAULT_RANDOM_MIN_DELAY_MILLIS: u64 = 1_000u64
const DEFAULT_RANDOM_MIN_DELAY_MILLIS: u64 = 1_000u64
Default random delay minimum value in milliseconds
Source§const DEFAULT_RANDOM_MAX_DELAY_MILLIS: u64 = 10_000u64
const DEFAULT_RANDOM_MAX_DELAY_MILLIS: u64 = 10_000u64
Default random delay maximum value in milliseconds
Source§const DEFAULT_BACKOFF_INITIAL_DELAY_MILLIS: u64 = 1_000u64
const DEFAULT_BACKOFF_INITIAL_DELAY_MILLIS: u64 = 1_000u64
Default exponential backoff initial delay in milliseconds
Source§const DEFAULT_BACKOFF_MAX_DELAY_MILLIS: u64 = 60_000u64
const DEFAULT_BACKOFF_MAX_DELAY_MILLIS: u64 = 60_000u64
Default exponential backoff maximum delay in milliseconds
Source§const DEFAULT_BACKOFF_MULTIPLIER: f64 = 2f64
const DEFAULT_BACKOFF_MULTIPLIER: f64 = 2f64
Default exponential backoff multiplier
Source§const DEFAULT_JITTER_FACTOR: f64 = 0f64
const DEFAULT_JITTER_FACTOR: f64 = 0f64
Default value for jitter factor
Source§const DEFAULT_MAX_DURATION_MILLIS: u64 = 0u64
const DEFAULT_MAX_DURATION_MILLIS: u64 = 0u64
Default maximum duration for retry execution in milliseconds, 0 means unlimited
Source§const DEFAULT_OPERATION_TIMEOUT_MILLIS: u64 = 0u64
const DEFAULT_OPERATION_TIMEOUT_MILLIS: u64 = 0u64
Default value for single operation timeout in milliseconds, 0 means unlimited
Source§fn set_random_delay_strategy(
&mut self,
min_delay: Duration,
max_delay: Duration,
) -> &mut Self
fn set_random_delay_strategy( &mut self, min_delay: Duration, max_delay: Duration, ) -> &mut Self
Set random delay range Read more
Source§fn set_fixed_delay_strategy(&mut self, delay: Duration) -> &mut Self
fn set_fixed_delay_strategy(&mut self, delay: Duration) -> &mut Self
Set fixed delay Read more
Source§fn set_exponential_backoff_strategy(
&mut self,
initial_delay: Duration,
max_delay: Duration,
multiplier: f64,
) -> &mut Self
fn set_exponential_backoff_strategy( &mut self, initial_delay: Duration, max_delay: Duration, multiplier: f64, ) -> &mut Self
Set exponential backoff strategy parameters Read more
Source§fn set_no_delay_strategy(&mut self) -> &mut Self
fn set_no_delay_strategy(&mut self) -> &mut Self
Set no delay strategy Read more
Source§fn set_unlimited_duration(&mut self) -> &mut Self
fn set_unlimited_duration(&mut self) -> &mut Self
Set unlimited duration Read more
Source§fn set_unlimited_operation_timeout(&mut self) -> &mut Self
fn set_unlimited_operation_timeout(&mut self) -> &mut Self
Set unlimited operation timeout Read more
Auto Trait Implementations§
impl Freeze for SimpleRetryConfig
impl RefUnwindSafe for SimpleRetryConfig
impl Send for SimpleRetryConfig
impl Sync for SimpleRetryConfig
impl Unpin for SimpleRetryConfig
impl UnwindSafe for SimpleRetryConfig
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