pub struct CircuitBreaker { /* private fields */ }Expand description
Failure isolation state for a fallible dependency.
Implementations§
Source§impl CircuitBreaker
impl CircuitBreaker
Sourcepub fn new(
failure_threshold: u32,
recovery_threshold: u32,
cooldown: Duration,
) -> Self
pub fn new( failure_threshold: u32, recovery_threshold: u32, cooldown: Duration, ) -> Self
Creates a circuit breaker with caller-defined thresholds and cooldown.
Sourcepub fn default_breaker() -> Self
pub fn default_breaker() -> Self
Creates the standard kernel circuit breaker.
Sourcepub fn state(&self) -> CircuitState
pub fn state(&self) -> CircuitState
Returns the current circuit state.
Sourcepub fn record_success(&mut self)
pub fn record_success(&mut self)
Records a successful dependency call.
Sourcepub fn record_failure(&mut self)
pub fn record_failure(&mut self)
Records a failed dependency call.
Sourcepub fn should_allow(&mut self) -> bool
pub fn should_allow(&mut self) -> bool
Returns whether a dependency call should proceed.
Side effect: if the breaker is Open and the cooldown has
elapsed, this transitions the state to HalfOpen.
Trait Implementations§
Source§impl Clone for CircuitBreaker
impl Clone for CircuitBreaker
Source§fn clone(&self) -> CircuitBreaker
fn clone(&self) -> CircuitBreaker
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 moreAuto Trait Implementations§
impl Freeze for CircuitBreaker
impl RefUnwindSafe for CircuitBreaker
impl Send for CircuitBreaker
impl Sync for CircuitBreaker
impl Unpin for CircuitBreaker
impl UnsafeUnpin for CircuitBreaker
impl UnwindSafe for CircuitBreaker
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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