Struct arrow_flight::sql::Any
source · 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
pub fn is<M: ProstMessageExt>(&self) -> bool
pub fn unpack<M: ProstMessageExt>(&self) -> Result<Option<M>, ArrowError>
pub fn pack<M: ProstMessageExt>(message: &M) -> Result<Any, ArrowError>
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<B>(&self, buf: &mut B) -> Result<(), EncodeError>where
B: BufMut,
Self: Sized,
fn encode<B>(&self, buf: &mut B) -> Result<(), EncodeError>where B: BufMut, Self: Sized,
source§fn encode_to_vec(&self) -> Vec<u8, Global>where
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8, Global>where Self: Sized,
source§fn encode_length_delimited<B>(&self, buf: &mut B) -> Result<(), EncodeError>where
B: BufMut,
Self: Sized,
fn encode_length_delimited<B>(&self, buf: &mut B) -> Result<(), EncodeError>where B: BufMut, Self: Sized,
source§fn encode_length_delimited_to_vec(&self) -> Vec<u8, Global>where
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8, Global>where Self: Sized,
source§fn decode<B>(buf: B) -> Result<Self, DecodeError>where
B: Buf,
Self: Default,
fn decode<B>(buf: B) -> Result<Self, DecodeError>where B: Buf, Self: Default,
source§fn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError>where
B: Buf,
Self: Default,
fn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError>where B: Buf, Self: Default,
source§fn merge<B>(&mut self, buf: B) -> Result<(), DecodeError>where
B: Buf,
Self: Sized,
fn merge<B>(&mut self, buf: B) -> Result<(), DecodeError>where B: Buf, Self: Sized,
self. Read moresource§fn merge_length_delimited<B>(&mut self, buf: B) -> Result<(), DecodeError>where
B: Buf,
Self: Sized,
fn merge_length_delimited<B>(&mut self, buf: B) -> Result<(), DecodeError>where B: Buf, Self: Sized,
self.impl StructuralPartialEq for Any
Auto Trait Implementations§
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> 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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request