pub enum GrpcError {
InvalidContentType,
BodyReadError(String),
InvalidFrame,
MessageTooLarge,
DecodeError(String),
CompressionUnsupported,
}Available on crate feature
grpc only.Expand description
Error types for gRPC extraction.
Variants§
InvalidContentType
Content-Type is not application/grpc.
BodyReadError(String)
Failed to read the request body.
InvalidFrame
gRPC frame is too short or malformed.
MessageTooLarge
Length-prefix advertises a message larger than MAX_GRPC_MESSAGE_SIZE.
Mapped to gRPC status ResourceExhausted (8) per the spec — grpc-go,
tonic, and the upstream issue (grpc/grpc#23454) all use it for
received message larger than max. Returning InvalidArgument would
be wire-level wrong: clients that backoff-retry on ResourceExhausted
would never retry on InvalidArgument.
DecodeError(String)
Protobuf decoding failed.
CompressionUnsupported
Frame’s compressed flag was set but the server does not advertise
any compression codec. Mapped to gRPC status Unimplemented per
the spec (https://grpc.io/docs/guides/wire/) so clients fall back
to uncompressed.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for GrpcError
impl RefUnwindSafe for GrpcError
impl Send for GrpcError
impl Sync for GrpcError
impl Unpin for GrpcError
impl UnsafeUnpin for GrpcError
impl UnwindSafe for GrpcError
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
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more