tower_http::classify

Trait ClassifyEos

Source
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§

Source

type FailureClass

The type of failure classifications.

Required Methods§

Source

fn classify_eos( self, trailers: Option<&HeaderMap>, ) -> Result<(), Self::FailureClass>

Perform the classification from response trailers.

Source

fn classify_error<E>(self, error: &E) -> Self::FailureClass
where 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§

Source

fn map_failure_class<F, NewClass>(self, f: F) -> MapFailureClass<Self, F>
where Self: Sized, F: FnOnce(Self::FailureClass) -> NewClass,

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.

Implementors§