pub struct CircuitBreaker { /* private fields */ }Expand description
A circuit breaker. Cheap to clone; the inner state is Arc<Mutex<_>>.
Implementations§
Source§impl CircuitBreaker
impl CircuitBreaker
Sourcepub fn builder() -> CircuitBreakerBuilder
pub fn builder() -> CircuitBreakerBuilder
Start configuring a new breaker.
Sourcepub async fn state(&self) -> CircuitState
pub async fn state(&self) -> CircuitState
Current breaker state. Mostly for telemetry / tests.
Sourcepub async fn call<F, T, E>(&self, fut: F) -> Result<Result<T, E>, ToolkitError>
pub async fn call<F, T, E>(&self, fut: F) -> Result<Result<T, E>, ToolkitError>
Execute fut, gating it on the breaker state.
Returns:
Ok(Ok(value))— call ran and succeeded.Ok(Err(e))— call ran and the wrapped future returnedErr(e). The breaker counts this as a failure.Err(ToolkitError::CircuitOpen { .. })— call was rejected without being invoked.
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 moreSource§impl Debug for CircuitBreaker
impl Debug for CircuitBreaker
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