pub enum RecoveryStrategy {
FailFast,
ExponentialBackoff {
initial_delay: Duration,
max_delay: Duration,
max_attempts: usize,
multiplier: f64,
},
LinearBackoff {
delay: Duration,
max_attempts: usize,
},
CircuitBreaker {
failure_threshold: usize,
timeout: Duration,
},
}Expand description
Recovery strategy for handling errors
Variants§
FailFast
Fail immediately without retry
ExponentialBackoff
Retry with exponential backoff
LinearBackoff
Retry with linear backoff
CircuitBreaker
Circuit breaker pattern (fail after threshold)
Implementations§
Source§impl RecoveryStrategy
impl RecoveryStrategy
Sourcepub fn default_exponential() -> Self
pub fn default_exponential() -> Self
Create exponential backoff strategy with sensible defaults
Sourcepub fn default_linear() -> Self
pub fn default_linear() -> Self
Create linear backoff strategy with sensible defaults
Sourcepub fn default_circuit_breaker() -> Self
pub fn default_circuit_breaker() -> Self
Create circuit breaker strategy with sensible defaults
Trait Implementations§
Source§impl Clone for RecoveryStrategy
impl Clone for RecoveryStrategy
Source§fn clone(&self) -> RecoveryStrategy
fn clone(&self) -> RecoveryStrategy
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 moreAuto Trait Implementations§
impl Freeze for RecoveryStrategy
impl RefUnwindSafe for RecoveryStrategy
impl Send for RecoveryStrategy
impl Sync for RecoveryStrategy
impl Unpin for RecoveryStrategy
impl UnwindSafe for RecoveryStrategy
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.