pub struct Retry {
pub max_attempts: u32,
pub backoff: Backoff,
}Expand description
Retry configuration for SNMP requests.
Controls how the client handles timeouts on UDP transports. TCP transports ignore retry configuration since the transport layer handles reliability.
§Examples
use async_snmp::Retry;
use std::time::Duration;
// No retries
let retry = Retry::none();
// Fixed delay between retries
let retry = Retry::fixed(3, Duration::from_millis(200));
// Exponential backoff with jitter (1s, 2s, 4s, 5s, 5s)
let retry = Retry::exponential(5)
.max_delay(Duration::from_secs(5))
.jitter(0.25)
.build();Fields§
§max_attempts: u32Maximum number of retry attempts (0 = no retries, request sent once)
backoff: BackoffBackoff strategy between retries
Implementations§
Source§impl Retry
impl Retry
Sourcepub fn fixed(attempts: u32, delay: Duration) -> Self
pub fn fixed(attempts: u32, delay: Duration) -> Self
Fixed delay between retries.
§Arguments
attempts- Maximum number of retry attemptsdelay- Fixed delay before each retry
Sourcepub fn exponential(attempts: u32) -> RetryBuilder
pub fn exponential(attempts: u32) -> RetryBuilder
Start building an exponential backoff retry configuration.
Returns a RetryBuilder for configuring the backoff parameters.
§Arguments
attempts- Maximum number of retry attempts
§Example
use async_snmp::Retry;
use std::time::Duration;
let retry = Retry::exponential(5)
.max_delay(Duration::from_secs(5))
.jitter(0.25)
.build();Sourcepub fn compute_delay(&self, attempt: u32) -> Duration
pub fn compute_delay(&self, attempt: u32) -> Duration
Compute the delay before the next retry attempt.
Returns Duration::ZERO for Backoff::None.
Trait Implementations§
Source§impl From<RetryBuilder> for Retry
impl From<RetryBuilder> for Retry
Source§fn from(builder: RetryBuilder) -> Self
fn from(builder: RetryBuilder) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for Retry
impl RefUnwindSafe for Retry
impl Send for Retry
impl Sync for Retry
impl Unpin for Retry
impl UnwindSafe for Retry
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