pub struct CircuitBreaker { /* private fields */ }
Expand description
Circuit breaker implementation
Implementations§
Source§impl CircuitBreaker
impl CircuitBreaker
Sourcepub fn new(config: CircuitBreakerConfig) -> Self
pub fn new(config: CircuitBreakerConfig) -> Self
Create a new circuit breaker with the given configuration
Sourcepub fn with_metrics(
config: CircuitBreakerConfig,
metrics: Arc<dyn Metrics>,
) -> Self
pub fn with_metrics( config: CircuitBreakerConfig, metrics: Arc<dyn Metrics>, ) -> Self
Create a new circuit breaker with metrics collection
Sourcepub fn set_enabled(&mut self, enabled: bool)
pub fn set_enabled(&mut self, enabled: bool)
Enable or disable the circuit breaker
Sourcepub async fn call<F, T>(&self, f: F) -> Result<T, CircuitBreakerError>
pub async fn call<F, T>(&self, f: F) -> Result<T, CircuitBreakerError>
Execute a function with circuit breaker protection
Sourcepub fn state(&self) -> CircuitState
pub fn state(&self) -> CircuitState
Get current circuit state
Sourcepub fn failure_count(&self) -> u32
pub fn failure_count(&self) -> u32
Get current failure count
Sourcepub fn success_count(&self) -> u32
pub fn success_count(&self) -> u32
Get current success count
Sourcepub fn get_metrics(&self) -> CircuitBreakerMetrics
pub fn get_metrics(&self) -> CircuitBreakerMetrics
Get comprehensive metrics
Sourcepub fn success_rate(&self) -> f64
pub fn success_rate(&self) -> f64
Get success rate as a percentage
Sourcepub fn failure_rate(&self) -> f64
pub fn failure_rate(&self) -> f64
Get failure rate as a percentage
Sourcepub fn is_healthy(&self) -> bool
pub fn is_healthy(&self) -> bool
Check if circuit breaker is healthy
Sourcepub fn force_open(&self)
pub fn force_open(&self)
Force circuit breaker to open state
Sourcepub fn force_close(&self)
pub fn force_close(&self)
Force circuit breaker to closed state
Auto Trait Implementations§
impl Freeze for CircuitBreaker
impl !RefUnwindSafe for CircuitBreaker
impl Send for CircuitBreaker
impl Sync for CircuitBreaker
impl Unpin 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