pub struct UnknownDetail {
pub type_url: String,
pub value: Vec<u8>,
}Expand description
Lossless carrier for an ErrorDetail.context arm this client does not know.
Wire contract: when a reader decodes an ErrorDetail whose context oneof
arm is not in its compiled vocabulary (a newer server added one), it MUST
re-encode that arm as unknown instead of collapsing it to prose:
type_urlfollows the Any convention,type.googleapis.com/heddle.api.v1alpha1.<MessageName>.valueis the encoded message bytes of the unrecognized arm, verbatim.
A reader that DOES know the type decodes value and may re-emit the typed
arm toward newer consumers. This explicit escape hatch exists because
generated bindings (prost et al.) drop undeclared fields during decode;
without it, forward details are silently lost on the first hop. The field is
pass-through only: servers must never originate unknown, and clients must
never invent semantics for a type they do not recognize.
Fields§
§type_url: StringAny-style type URL naming the unrecognized context message.
value: Vec<u8>Encoded bytes of the unrecognized context message.
Trait Implementations§
Source§impl Clone for UnknownDetail
impl Clone for UnknownDetail
Source§fn clone(&self) -> UnknownDetail
fn clone(&self) -> UnknownDetail
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for UnknownDetail
impl Debug for UnknownDetail
Source§impl Default for UnknownDetail
impl Default for UnknownDetail
impl Eq for UnknownDetail
Source§impl Hash for UnknownDetail
impl Hash for UnknownDetail
Source§impl Message for UnknownDetail
impl Message for UnknownDetail
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self.