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-statusheader value matchesGrpcErrorsAsFailures::success_codes(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
sourceimpl 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
sourceimpl 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).
sourcefn 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
sourcefn classify_error<E>(self, error: &E) -> Self::FailureClass where
E: Display + 'static,
fn classify_error<E>(self, error: &E) -> Self::FailureClass where
E: Display + 'static,
Classify an error. Read more
sourcefn 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
sourceimpl Clone for GrpcErrorsAsFailures
impl Clone for GrpcErrorsAsFailures
sourcefn clone(&self) -> GrpcErrorsAsFailures
fn clone(&self) -> GrpcErrorsAsFailures
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source. Read more
sourceimpl 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
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> PolicyExt for T where
T: ?Sized,
impl<T> PolicyExt for T where
T: ?Sized,
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber to this type, returning a
WithDispatch wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber to this type, returning a
WithDispatch wrapper. Read more