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
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> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more
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