pub enum Data {
Bytes(Vec<u8>),
Buffer(Buffer),
// some variants omitted
}
Expand description
Binary data that might be stored inline or in a VMO.
Useful for performance-sensitive protocols that sometimes receive small
amounts of binary data (i.e., which is more efficient to provide using
bytes
) but also need to support arbitrary amounts of data (i.e., which
need to be provided out-of-line in a Buffer
).
Variants§
Bytes(Vec<u8>)
The binary data provided inline in the message.
Buffer(Buffer)
The binary data provided out-of-line in a Buffer
.
Implementations§
Trait Implementations§
Source§impl Decode<Data, DefaultFuchsiaResourceDialect> for Data
impl Decode<Data, DefaultFuchsiaResourceDialect> for Data
Source§impl ResourceTypeMarker for Data
impl ResourceTypeMarker for Data
Source§type Borrowed<'a> = &'a mut Data
type Borrowed<'a> = &'a mut Data
The Rust type to use for encoding. This is a particular
Encode<Self>
type cheaply obtainable from &mut Self::Owned
. There are three cases: Read moreSource§fn take_or_borrow<'a>(
value: &'a mut <Self as TypeMarker>::Owned,
) -> Self::Borrowed<'a>
fn take_or_borrow<'a>( value: &'a mut <Self as TypeMarker>::Owned, ) -> Self::Borrowed<'a>
Cheaply converts from
&mut Self::Owned
to Self::Borrowed
. For
HandleBased
types this is “take” (it returns an owned handle and
replaces value
with Handle::invalid
), and for all other types it is
“borrow” (just converts from one reference to another).Source§impl TypeMarker for Data
impl TypeMarker for Data
Source§fn inline_align(_context: Context) -> usize
fn inline_align(_context: Context) -> usize
Returns the minimum required alignment of the inline portion of the
encoded object. It must be a (nonzero) power of two.
Source§fn inline_size(_context: Context) -> usize
fn inline_size(_context: Context) -> usize
Returns the size of the inline portion of the encoded object, including
padding for alignment. Must be a multiple of
inline_align
.§fn encode_is_copy() -> bool
fn encode_is_copy() -> bool
Returns true if the memory layout of
Self::Owned
matches the FIDL wire
format and encoding requires no validation. When true, we can optimize
encoding arrays and vectors of Self::Owned
to a single memcpy. Read more§fn decode_is_copy() -> bool
fn decode_is_copy() -> bool
Returns true if the memory layout of
Self::Owned
matches the FIDL wire
format and decoding requires no validation. When true, we can optimize
decoding arrays and vectors of Self::Owned
to a single memcpy.impl Standalone<DefaultFuchsiaResourceDialect> for Data
Auto Trait Implementations§
impl Freeze for Data
impl RefUnwindSafe for Data
impl Send for Data
impl Sync for Data
impl Unpin for Data
impl UnwindSafe for Data
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