Struct tower_http::classify::StatusInRangeAsFailures
source · pub struct StatusInRangeAsFailures { /* private fields */ }
Expand description
Response classifier that considers responses with a status code within some range to be failures.
Example
A client with tracing where server errors and client errors are considered failures.
use tower_http::{trace::TraceLayer, classify::StatusInRangeAsFailures};
use tower::{ServiceBuilder, Service, ServiceExt};
use hyper::{Client, Body};
use http::{Request, Method};
let classifier = StatusInRangeAsFailures::new(400..=599);
let mut client = ServiceBuilder::new()
.layer(TraceLayer::new(classifier.into_make_classifier()))
.service(Client::new());
let request = Request::builder()
.method(Method::GET)
.uri("https://example.com")
.body(Body::empty())
.unwrap();
let response = client.ready().await?.call(request).await?;
Implementations§
source§impl StatusInRangeAsFailures
impl StatusInRangeAsFailures
sourcepub fn new(range: RangeInclusive<u16>) -> Self
pub fn new(range: RangeInclusive<u16>) -> Self
Creates a new StatusInRangeAsFailures
.
Panics
Panics if the start or end of range
aren’t valid status codes as determined by
StatusCode::from_u16
.
sourcepub fn new_for_client_and_server_errors() -> Self
pub fn new_for_client_and_server_errors() -> Self
Creates a new StatusInRangeAsFailures
that classifies client and server responses as
failures.
This is a convenience for StatusInRangeAsFailures::new(400..=599)
.
sourcepub fn into_make_classifier(self) -> SharedClassifier<Self>
pub fn into_make_classifier(self) -> SharedClassifier<Self>
Convert this StatusInRangeAsFailures
into a MakeClassifier
.
Trait Implementations§
source§impl ClassifyResponse for StatusInRangeAsFailures
impl ClassifyResponse for StatusInRangeAsFailures
§type FailureClass = StatusInRangeFailureClass
type FailureClass = StatusInRangeFailureClass
The type returned when a response is classified as a failure. Read more
§type ClassifyEos = NeverClassifyEos<<StatusInRangeAsFailures as ClassifyResponse>::FailureClass>
type ClassifyEos = NeverClassifyEos<<StatusInRangeAsFailures as ClassifyResponse>::FailureClass>
The type used to classify the response end of stream (EOS).
source§fn classify_response<B>(
self,
res: &Response<B>
) -> ClassifiedResponse<Self::FailureClass, Self::ClassifyEos>
fn classify_response<B>(
self,
res: &Response<B>
) -> ClassifiedResponse<Self::FailureClass, Self::ClassifyEos>
Attempt to classify the beginning of a response. Read more
source§fn 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. Read more
source§fn map_failure_class<F, NewClass>(self, f: F) -> MapFailureClass<Self, F>where
Self: Sized,
F: FnOnce(Self::FailureClass) -> NewClass,
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. Read more
source§impl Clone for StatusInRangeAsFailures
impl Clone for StatusInRangeAsFailures
source§fn clone(&self) -> StatusInRangeAsFailures
fn clone(&self) -> StatusInRangeAsFailures
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read more