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 http::{Request, Method};
use http_body_util::Full;
use bytes::Bytes;
use hyper_util::{rt::TokioExecutor, client::legacy::Client};
let classifier = StatusInRangeAsFailures::new(400..=599);
let client = Client::builder(TokioExecutor::new()).build_http();
let mut client = ServiceBuilder::new()
.layer(TraceLayer::new(classifier.into_make_classifier()))
.service(client);
let request = Request::builder()
.method(Method::GET)
.uri("https://example.com")
.body(Full::<Bytes>::default())
.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>
fn map_failure_class<F, NewClass>(self, f: F) -> MapFailureClass<Self, F>
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 moreAuto Trait Implementations§
impl RefUnwindSafe for StatusInRangeAsFailures
impl Send for StatusInRangeAsFailures
impl Sync for StatusInRangeAsFailures
impl Unpin for StatusInRangeAsFailures
impl UnwindSafe for StatusInRangeAsFailures
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more