Trait failsafe::futures::CircuitBreaker
source · [−]pub trait CircuitBreaker {
fn is_call_permitted(&self) -> bool;
fn call_with<F, P>(
&self,
predicate: P,
f: F
) -> ResponseFuture<F, Self::FailurePolicy, Self::Instrument, P>ⓘNotable traits for ResponseFuture<FUTURE, POLICY, INSTRUMENT, PREDICATE>impl<FUTURE, POLICY, INSTRUMENT, PREDICATE> Future for ResponseFuture<FUTURE, POLICY, INSTRUMENT, PREDICATE> where
FUTURE: TryFuture,
POLICY: FailurePolicy,
INSTRUMENT: Instrument,
PREDICATE: FailurePredicate<FUTURE::Error>, type Output = Result<FUTURE::Ok, Error<FUTURE::Error>>;
where
F: TryFuture,
P: FailurePredicate<F::Error>;
fn call<F>(
&self,
f: F
) -> ResponseFuture<F, Self::FailurePolicy, Self::Instrument, Any>ⓘNotable traits for ResponseFuture<FUTURE, POLICY, INSTRUMENT, PREDICATE>impl<FUTURE, POLICY, INSTRUMENT, PREDICATE> Future for ResponseFuture<FUTURE, POLICY, INSTRUMENT, PREDICATE> where
FUTURE: TryFuture,
POLICY: FailurePolicy,
INSTRUMENT: Instrument,
PREDICATE: FailurePredicate<FUTURE::Error>, type Output = Result<FUTURE::Ok, Error<FUTURE::Error>>;
where
F: TryFuture,
{ ... }
}
Expand description
A futures aware circuit breaker’s public interface.
Required Methods
fn is_call_permitted(&self) -> bool
fn is_call_permitted(&self) -> bool
Requests permission to call.
It returns true
if a call is allowed, or false
if prohibited.
fn call_with<F, P>(
&self,
predicate: P,
f: F
) -> ResponseFuture<F, Self::FailurePolicy, Self::Instrument, P>ⓘNotable traits for ResponseFuture<FUTURE, POLICY, INSTRUMENT, PREDICATE>impl<FUTURE, POLICY, INSTRUMENT, PREDICATE> Future for ResponseFuture<FUTURE, POLICY, INSTRUMENT, PREDICATE> where
FUTURE: TryFuture,
POLICY: FailurePolicy,
INSTRUMENT: Instrument,
PREDICATE: FailurePredicate<FUTURE::Error>, type Output = Result<FUTURE::Ok, Error<FUTURE::Error>>;
where
F: TryFuture,
P: FailurePredicate<F::Error>,
fn call_with<F, P>(
&self,
predicate: P,
f: F
) -> ResponseFuture<F, Self::FailurePolicy, Self::Instrument, P>ⓘNotable traits for ResponseFuture<FUTURE, POLICY, INSTRUMENT, PREDICATE>impl<FUTURE, POLICY, INSTRUMENT, PREDICATE> Future for ResponseFuture<FUTURE, POLICY, INSTRUMENT, PREDICATE> where
FUTURE: TryFuture,
POLICY: FailurePolicy,
INSTRUMENT: Instrument,
PREDICATE: FailurePredicate<FUTURE::Error>, type Output = Result<FUTURE::Ok, Error<FUTURE::Error>>;
where
F: TryFuture,
P: FailurePredicate<F::Error>,
FUTURE: TryFuture,
POLICY: FailurePolicy,
INSTRUMENT: Instrument,
PREDICATE: FailurePredicate<FUTURE::Error>, type Output = Result<FUTURE::Ok, Error<FUTURE::Error>>;
Executes a given future within circuit breaker.
Depending on future result value, the call will be recorded as success or failure.
It checks error by the provided predicate. If the predicate returns true
for the
error, the call is recorded as failure otherwise considered this error as a success.
Provided Methods
fn call<F>(
&self,
f: F
) -> ResponseFuture<F, Self::FailurePolicy, Self::Instrument, Any>ⓘNotable traits for ResponseFuture<FUTURE, POLICY, INSTRUMENT, PREDICATE>impl<FUTURE, POLICY, INSTRUMENT, PREDICATE> Future for ResponseFuture<FUTURE, POLICY, INSTRUMENT, PREDICATE> where
FUTURE: TryFuture,
POLICY: FailurePolicy,
INSTRUMENT: Instrument,
PREDICATE: FailurePredicate<FUTURE::Error>, type Output = Result<FUTURE::Ok, Error<FUTURE::Error>>;
where
F: TryFuture,
fn call<F>(
&self,
f: F
) -> ResponseFuture<F, Self::FailurePolicy, Self::Instrument, Any>ⓘNotable traits for ResponseFuture<FUTURE, POLICY, INSTRUMENT, PREDICATE>impl<FUTURE, POLICY, INSTRUMENT, PREDICATE> Future for ResponseFuture<FUTURE, POLICY, INSTRUMENT, PREDICATE> where
FUTURE: TryFuture,
POLICY: FailurePolicy,
INSTRUMENT: Instrument,
PREDICATE: FailurePredicate<FUTURE::Error>, type Output = Result<FUTURE::Ok, Error<FUTURE::Error>>;
where
F: TryFuture,
FUTURE: TryFuture,
POLICY: FailurePolicy,
INSTRUMENT: Instrument,
PREDICATE: FailurePredicate<FUTURE::Error>, type Output = Result<FUTURE::Ok, Error<FUTURE::Error>>;
Executes a given future within circuit breaker.
Depending on future result value, the call will be recorded as success or failure.