pub struct CircuitBreaker { /* private fields */ }Expand description
Atomic circuit breaker that opens after N consecutive failures.
Thread-safe via AtomicU32. Resets on success.
Implementations§
Source§impl CircuitBreaker
impl CircuitBreaker
Sourcepub fn new(threshold: u32) -> Self
pub fn new(threshold: u32) -> Self
Create a new circuit breaker with the given failure threshold.
Sourcepub fn is_open(&self) -> bool
pub fn is_open(&self) -> bool
Returns true if the breaker is open (too many consecutive failures).
Sourcepub fn record_failure(&self) -> u32
pub fn record_failure(&self) -> u32
Record a failure. Returns current consecutive failure count.
Sourcepub fn record_success(&self)
pub fn record_success(&self)
Reset on success.
Sourcepub fn failure_count(&self) -> u32
pub fn failure_count(&self) -> u32
Current consecutive failure count.
Trait Implementations§
Auto 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
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