pub struct Any {
    pub type_url: String,
    pub value: Bytes,
}Expand description
An implementation of the protobuf Any message type
Encoded protobuf messages are not self-describing, nor contain any information on the schema of the encoded payload. Consequently to decode a protobuf a client must know the exact schema of the message.
This presents a problem for loosely typed APIs, where the exact message payloads are not enumerable, and therefore cannot be enumerated as variants in a oneof.
One solution is Any where the encoded payload is paired with a type_url
identifying the type of encoded message, and the resulting combination encoded.
Clients can then decode the outer Any, inspect the type_url and if it is
a type they recognise, proceed to decode the embedded message value
Fields§
§type_url: StringA URL/resource name that uniquely identifies the type of the serialized
protocol buffer message. This string must contain at least
one “/” character. The last segment of the URL’s path must represent
the fully qualified name of the type (as in
path/google.protobuf.Duration). The name should be in a canonical form
(e.g., leading “.” is not accepted).
value: BytesMust be a valid serialized protocol buffer of the above specified type.
Implementations§
Source§impl Any
 
impl Any
Sourcepub fn is<M: ProstMessageExt>(&self) -> bool
 
pub fn is<M: ProstMessageExt>(&self) -> bool
Checks whether the message is of type M
Sourcepub fn unpack<M: ProstMessageExt>(&self) -> Result<Option<M>, ArrowError>
 
pub fn unpack<M: ProstMessageExt>(&self) -> Result<Option<M>, ArrowError>
Unpacks the contents of the message if it is of type M
Sourcepub fn pack<M: ProstMessageExt>(message: &M) -> Result<Any, ArrowError>
 
pub fn pack<M: ProstMessageExt>(message: &M) -> Result<Any, ArrowError>
Packs a message into an Any message
Trait Implementations§
Source§impl Message for Any
 
impl Message for Any
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.impl StructuralPartialEq for Any
Auto Trait Implementations§
impl !Freeze for Any
impl RefUnwindSafe for Any
impl Send for Any
impl Sync for Any
impl Unpin for Any
impl UnwindSafe for Any
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
Source§impl<T> CloneToUninit for Twhere
    T: Clone,
 
impl<T> CloneToUninit for Twhere
    T: Clone,
§impl<T> Instrument for T
 
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
 
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
 
fn in_current_span(self) -> Instrumented<Self>
§impl<T> IntoRequest<T> for T
 
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
 
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
 
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
    L: Layer<S>,
 
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
    L: Layer<S>,
Layered].