rama::http::layer::classify

Trait MakeClassifier

pub trait MakeClassifier:
    Send
    + Sync
    + 'static {
    type Classifier: ClassifyResponse<FailureClass = Self::FailureClass, ClassifyEos = Self::ClassifyEos>;
    type FailureClass: Send + Sync + 'static;
    type ClassifyEos: ClassifyEos<FailureClass = Self::FailureClass> + Send + Sync + 'static;

    // Required method
    fn make_classifier<B>(&self, req: &Request<B>) -> Self::Classifier;
}
Expand description

Trait for producing response classifiers from a request.

This is useful when a classifier depends on data from the request. For example, this could include the URI or HTTP method.

This trait is generic over the Error type of the Services used with the classifier. This is necessary for ClassifyResponse::classify_error.

Required Associated Types§

type Classifier: ClassifyResponse<FailureClass = Self::FailureClass, ClassifyEos = Self::ClassifyEos>

The response classifier produced.

type FailureClass: Send + Sync + 'static

The type of failure classifications.

This might include additional information about the error, such as whether it was a client or server error, or whether or not it should be considered retryable.

type ClassifyEos: ClassifyEos<FailureClass = Self::FailureClass> + Send + Sync + 'static

The type used to classify the response end of stream (EOS).

Required Methods§

fn make_classifier<B>(&self, req: &Request<B>) -> Self::Classifier

Returns a response classifier for this request

Object Safety§

This trait is not object safe.

Implementors§