pub trait Policy<S, St, Req>: Sized + Clonewhere
S: Service<St, Req>,{
// Required methods
async fn retry(
&mut self,
req: &Req,
res: &Result<<S as Service<St, Req>>::Res, <S as Service<St, Req>>::Error>,
) -> bool;
fn clone_request(&self, req: &Req) -> Option<Req>;
}Expand description
Determines whether and how a failed service call is retried.
Required Methods§
Sourceasync fn retry(
&mut self,
req: &Req,
res: &Result<<S as Service<St, Req>>::Res, <S as Service<St, Req>>::Error>,
) -> bool
async fn retry( &mut self, req: &Req, res: &Result<<S as Service<St, Req>>::Res, <S as Service<St, Req>>::Error>, ) -> bool
Returns whether the call should be retried.
Sourcefn clone_request(&self, req: &Req) -> Option<Req>
fn clone_request(&self, req: &Req) -> Option<Req>
Clones or reconstructs a request for a possible retry.
Returning None prevents retries for this request.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".