Struct tower_http::classify::GrpcErrorsAsFailures
source · pub struct GrpcErrorsAsFailures { /* private fields */ }
Expand description
Response classifier for gRPC responses.
gRPC doesn’t use normal HTTP statuses for indicating success or failure but instead a special header that might appear in a trailer.
Responses are considered successful if
grpc-status
header value matchesGrpcErrorsAsFailures::success_codes
(onlyOk
by default).grpc-status
header is missing.grpc-status
header value isn’t a validString
.grpc-status
header value can’t parsed into ani32
.
All others are considered failures.
Implementations§
source§impl GrpcErrorsAsFailures
impl GrpcErrorsAsFailures
sourcepub fn new() -> Self
pub fn new() -> Self
Create a new GrpcErrorsAsFailures
.
sourcepub fn with_success(self, code: GrpcCode) -> Self
pub fn with_success(self, code: GrpcCode) -> Self
Change which gRPC codes are considered success.
Defaults to only considering Ok
as success.
Ok
will always be considered a success.
Example
Servers might not want to consider Invalid Argument
or Not Found
as failures since
thats likely the clients fault:
use tower_http::classify::{GrpcErrorsAsFailures, GrpcCode};
let classifier = GrpcErrorsAsFailures::new()
.with_success(GrpcCode::InvalidArgument)
.with_success(GrpcCode::NotFound);
sourcepub fn make_classifier() -> SharedClassifier<Self>
pub fn make_classifier() -> SharedClassifier<Self>
Returns a MakeClassifier
that produces GrpcErrorsAsFailures
.
This is a convenience function that simply calls SharedClassifier::new
.
Trait Implementations§
source§impl ClassifyResponse for GrpcErrorsAsFailures
impl ClassifyResponse for GrpcErrorsAsFailures
§type FailureClass = GrpcFailureClass
type FailureClass = GrpcFailureClass
The type returned when a response is classified as a failure. Read more
§type ClassifyEos = GrpcEosErrorsAsFailures
type ClassifyEos = GrpcEosErrorsAsFailures
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 GrpcErrorsAsFailures
impl Clone for GrpcErrorsAsFailures
source§fn clone(&self) -> GrpcErrorsAsFailures
fn clone(&self) -> GrpcErrorsAsFailures
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