pub trait ClassifyEos {
type FailureClass;
// Required methods
fn classify_eos(
self,
trailers: Option<&HeaderMap>,
) -> Result<(), Self::FailureClass>;
fn classify_error<E>(self, error: &E) -> Self::FailureClass
where E: Display + 'static;
// Provided method
fn map_failure_class<F, NewClass>(self, f: F) -> MapFailureClass<Self, F>
where Self: Sized,
F: FnOnce(Self::FailureClass) -> NewClass { ... }
}
Expand description
Trait for classifying end of streams (EOS) as either success or failure.
Required Associated Types§
Sourcetype FailureClass
type FailureClass
The type of failure classifications.
Required Methods§
Sourcefn classify_eos(
self,
trailers: Option<&HeaderMap>,
) -> Result<(), Self::FailureClass>
fn classify_eos( self, trailers: Option<&HeaderMap>, ) -> Result<(), Self::FailureClass>
Perform the classification from response trailers.
Sourcefn classify_error<E>(self, error: &E) -> Self::FailureClasswhere
E: Display + 'static,
fn classify_error<E>(self, error: &E) -> Self::FailureClasswhere
E: Display + 'static,
Classify an error.
Errors are always errors (doh) but sometimes it might be useful to have multiple classes of errors. A retry policy might allow retrying some errors and not others.
Provided Methods§
Sourcefn map_failure_class<F, NewClass>(self, f: F) -> MapFailureClass<Self, F>
fn map_failure_class<F, NewClass>(self, f: F) -> MapFailureClass<Self, F>
Transform the failure classification using a function.
See ClassifyResponse::map_failure_class
for more details.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.