pub struct VmoBuffer {
pub vmo: Option<Vmo>,
pub vmo_usable_start: u64,
}
Fields§
§vmo: Option<Vmo>
The same VMO can be used by more than one CodecBuffer (only of the same buffer_lifetime_ordinal), but each vmo handle must be a separate handle.
The vmo field can be 0 if this is a VmoBuffer in BufferCollectionInfo_2 that’s at or beyond BufferCollectionInfo_2.buffer_count.
vmo_usable_start: u64
Offset within the VMO of the first usable byte. Must be < the VMO’s size in bytes, and leave sufficient room for BufferMemorySettings.size_bytes before the end of the VMO.
Trait Implementations§
Source§impl Decode<VmoBuffer, DefaultFuchsiaResourceDialect> for VmoBuffer
impl Decode<VmoBuffer, DefaultFuchsiaResourceDialect> for VmoBuffer
Source§impl<T0: Encode<Optional<HandleType<Vmo, { _ }, 2147483648>>, DefaultFuchsiaResourceDialect>, T1: Encode<u64, DefaultFuchsiaResourceDialect>> Encode<VmoBuffer, DefaultFuchsiaResourceDialect> for (T0, T1)
impl<T0: Encode<Optional<HandleType<Vmo, { _ }, 2147483648>>, DefaultFuchsiaResourceDialect>, T1: Encode<u64, DefaultFuchsiaResourceDialect>> Encode<VmoBuffer, DefaultFuchsiaResourceDialect> for (T0, T1)
Source§impl Ord for VmoBuffer
impl Ord for VmoBuffer
Source§impl PartialOrd for VmoBuffer
impl PartialOrd for VmoBuffer
Source§impl ResourceTypeMarker for VmoBuffer
impl ResourceTypeMarker for VmoBuffer
Source§type Borrowed<'a> = &'a mut VmoBuffer
type Borrowed<'a> = &'a mut VmoBuffer
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 VmoBuffer
impl TypeMarker for VmoBuffer
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 Eq for VmoBuffer
impl Standalone<DefaultFuchsiaResourceDialect> for VmoBuffer
impl StructuralPartialEq for VmoBuffer
Auto Trait Implementations§
impl Freeze for VmoBuffer
impl RefUnwindSafe for VmoBuffer
impl Send for VmoBuffer
impl Sync for VmoBuffer
impl Unpin for VmoBuffer
impl UnwindSafe for VmoBuffer
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