pub enum DataTransfer {
VmoTransfer(VmoTransfer),
InlineData(Vec<u8>),
// some variants omitted
}Expand description
Data to be transferred. There are two supported ways data may be conveyed, corresponding to the two members of the DataTransfer union:
-
vmo_transfer: A region within a VMO previously known to the driver. This VMO must have been established via
PacketStreamControl.RegisterVmos(if client-allocated) orPacketStreamControl.AllocateVmos(if driver-allocated). Future requests refer to this buffer by the uniquevmo_id. Because VMOs are reused across requests, the one-time cost of pinning/mapping is amortized. -
data: The payload is provided directly within the message. This mode is intended for small transfers or control information, not high-throughput streaming.
Variants§
VmoTransfer(VmoTransfer)
Data is stored in a region of a registered VMO.
Requires PacketStreamProperties.supported_buffer_types to include CLIENT_OWNED
or DRIVER_OWNED.
InlineData(Vec<u8>)
Embedded data buffer.
Requires PacketStreamProperties.supported_buffer_types to include INLINE.
Implementations§
Source§impl DataTransfer
impl DataTransfer
pub fn ordinal(&self) -> u64
pub fn unknown_variant_for_testing() -> Self
pub fn is_unknown(&self) -> bool
Trait Implementations§
Source§impl Debug for DataTransfer
impl Debug for DataTransfer
Source§impl Decode<DataTransfer, FDomainResourceDialect> for DataTransfer
impl Decode<DataTransfer, FDomainResourceDialect> for DataTransfer
Source§impl Encode<DataTransfer, FDomainResourceDialect> for &mut DataTransfer
impl Encode<DataTransfer, FDomainResourceDialect> for &mut DataTransfer
Source§impl PartialEq for DataTransfer
impl PartialEq for DataTransfer
Source§impl ResourceTypeMarker for DataTransfer
impl ResourceTypeMarker for DataTransfer
Source§type Borrowed<'a> = &'a mut DataTransfer
type Borrowed<'a> = &'a mut DataTransfer
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>
&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 DataTransfer
impl TypeMarker for DataTransfer
Source§type Owned = DataTransfer
type Owned = DataTransfer
Source§fn inline_align(_context: Context) -> usize
fn inline_align(_context: Context) -> usize
Source§fn inline_size(_context: Context) -> usize
fn inline_size(_context: Context) -> usize
inline_align.Source§fn encode_is_copy() -> bool
fn encode_is_copy() -> bool
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 moreSource§fn decode_is_copy() -> bool
fn decode_is_copy() -> bool
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<FDomainResourceDialect> for DataTransfer
Auto Trait Implementations§
impl Freeze for DataTransfer
impl RefUnwindSafe for DataTransfer
impl Send for DataTransfer
impl Sync for DataTransfer
impl Unpin for DataTransfer
impl UnwindSafe for DataTransfer
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, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
Source§impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
§impl<T> InstanceFromServiceTransport<T> for T
impl<T> InstanceFromServiceTransport<T> for T
§fn from_service_transport(handle: T) -> T
fn from_service_transport(handle: T) -> T
T to [Self]