pub struct RetryPolicy { /* private fields */ }Expand description
Retry policy with smart error-based decisions
Implementations§
Source§impl RetryPolicy
impl RetryPolicy
Sourcepub fn new(config: RetryConfig) -> Self
pub fn new(config: RetryConfig) -> Self
Create a new retry policy
Sourcepub fn with_circuit_breaker(
config: RetryConfig,
circuit_breaker_config: CircuitBreakerConfig,
) -> Self
pub fn with_circuit_breaker( config: RetryConfig, circuit_breaker_config: CircuitBreakerConfig, ) -> Self
Create a retry policy with circuit breaker
Sourcepub async fn execute<F, T>(
&self,
operation: F,
context: ErrorContext,
) -> McpResult<T>
pub async fn execute<F, T>( &self, operation: F, context: ErrorContext, ) -> McpResult<T>
Execute an operation with smart retry logic
Sourcepub async fn circuit_breaker_stats(&self) -> Option<CircuitBreakerStats>
pub async fn circuit_breaker_stats(&self) -> Option<CircuitBreakerStats>
Get circuit breaker statistics if available
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for RetryPolicy
impl !UnwindSafe for RetryPolicy
impl Freeze for RetryPolicy
impl Send for RetryPolicy
impl Sync for RetryPolicy
impl Unpin for RetryPolicy
impl UnsafeUnpin for RetryPolicy
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
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].