Struct tower_async_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-statusheader value matches the defines success codes inGrpcErrorsAsFailures(onlyOkby default).grpc-statusheader is missing.grpc-statusheader value isn’t a validString.grpc-statusheader 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_async_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 moresource§impl Debug for GrpcErrorsAsFailures
impl Debug for GrpcErrorsAsFailures
Auto Trait Implementations§
impl RefUnwindSafe for GrpcErrorsAsFailures
impl Send for GrpcErrorsAsFailures
impl Sync for GrpcErrorsAsFailures
impl Unpin for GrpcErrorsAsFailures
impl UnwindSafe for GrpcErrorsAsFailures
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