pub enum FaultTolerancePolicy {
RetryPolicy {
max_attempts: usize,
backoff_strategy: BackoffStrategy,
retry_conditions: Vec<RetryCondition>,
},
CircuitBreakerPolicy {
failure_threshold: usize,
recovery_timeout: Duration,
half_open_max_calls: usize,
},
BulkheadPolicy {
max_concurrent_calls: usize,
queue_size: usize,
timeout: Duration,
},
FallbackPolicy {
fallback_action: FallbackAction,
fallback_conditions: Vec<FallbackCondition>,
},
TimeoutPolicy {
timeout: Duration,
timeout_action: TimeoutAction,
},
RateLimitPolicy {
max_requests: usize,
time_window: Duration,
rate_limit_action: RateLimitAction,
},
CustomPolicy {
policy_name: String,
parameters: HashMap<String, String>,
},
}Expand description
Fault tolerance policy
Variants§
RetryPolicy
Retry policy for transient failures
CircuitBreakerPolicy
Circuit breaker policy
BulkheadPolicy
Bulkhead policy for resource isolation
FallbackPolicy
Fallback policy
TimeoutPolicy
Timeout policy
RateLimitPolicy
Rate limiting policy
CustomPolicy
Custom policy
Trait Implementations§
Source§impl Clone for FaultTolerancePolicy
impl Clone for FaultTolerancePolicy
Source§fn clone(&self) -> FaultTolerancePolicy
fn clone(&self) -> FaultTolerancePolicy
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 FaultTolerancePolicy
impl RefUnwindSafe for FaultTolerancePolicy
impl Send for FaultTolerancePolicy
impl Sync for FaultTolerancePolicy
impl Unpin for FaultTolerancePolicy
impl UnwindSafe for FaultTolerancePolicy
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
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 more