pub struct Buffer {
pub direction: Option<Direction>,
pub vmo: Option<Vmo>,
pub offset: Option<u64>,
pub size: Option<u64>,
/* private fields */
}
Expand description
Represents a buffer parameter.
Fields§
§direction: Option<Direction>
§vmo: Option<Vmo>
The VMO is allowed to be not present for situations where the TEE allows for buffer size checks.
For example, if the operation to be performed needs an output buffer, but the user cannot calculate how large that output buffer should be, they can attempt the operation without a vmo and the Trusted Application will populate the size field so that the operation can be performed again with an appropriately sized buffer.
offset: Option<u64>
§size: Option<u64>
Trait Implementations§
Source§impl Decode<Buffer, DefaultFuchsiaResourceDialect> for Buffer
impl Decode<Buffer, DefaultFuchsiaResourceDialect> for Buffer
Source§impl ResourceTypeMarker for Buffer
impl ResourceTypeMarker for Buffer
Source§type Borrowed<'a> = &'a mut Buffer
type Borrowed<'a> = &'a mut Buffer
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 Buffer
impl TypeMarker for Buffer
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 Buffer
impl StructuralPartialEq for Buffer
Auto Trait Implementations§
impl Freeze for Buffer
impl RefUnwindSafe for Buffer
impl Send for Buffer
impl Sync for Buffer
impl Unpin for Buffer
impl UnwindSafe for Buffer
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