pub struct BufferMemoryConstraints {
pub min_size_bytes: u32,
pub max_size_bytes: u32,
pub physically_contiguous_required: bool,
pub secure_required: bool,
pub ram_domain_supported: bool,
pub cpu_domain_supported: bool,
pub inaccessible_domain_supported: bool,
pub heap_permitted_count: u32,
pub heap_permitted: [HeapType; 32],
}
Expand description
This type is deprecated for new code, but is still used by some camera code.
Fields§
§min_size_bytes: u32
§max_size_bytes: u32
0 is treated as 0xFFFFFFFF.
physically_contiguous_required: bool
§secure_required: bool
If true, at least one participant requires secure memory.
When aggregating BufferCollectionConstraints, these values boolean-OR.
ram_domain_supported: bool
By default, participants must ensure the CPU can read or write data to the buffer without cache operations. If they support using the RAM domain, data must be available in RAM (with CPU cache state such that the RAM data won’t get corrupted by a dirty CPU cache line writing incorrect data to RAM), and a consumer reading using the CPU must invalidate CPU cache before reading (the producer doesn’t guarantee zero stale “clean” cache lines)
cpu_domain_supported: bool
§inaccessible_domain_supported: bool
§heap_permitted_count: u32
Optional heap constraints. Participants that don’t care which heap memory is allocated on should leave this field 0.
heap_permitted: [HeapType; 32]
Trait Implementations§
Source§impl Clone for BufferMemoryConstraints
impl Clone for BufferMemoryConstraints
Source§fn clone(&self) -> BufferMemoryConstraints
fn clone(&self) -> BufferMemoryConstraints
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for BufferMemoryConstraints
impl Debug for BufferMemoryConstraints
Source§impl<D: ResourceDialect> Decode<BufferMemoryConstraints, D> for BufferMemoryConstraints
impl<D: ResourceDialect> Decode<BufferMemoryConstraints, D> for BufferMemoryConstraints
Source§impl<D: ResourceDialect> Encode<BufferMemoryConstraints, D> for &BufferMemoryConstraints
impl<D: ResourceDialect> Encode<BufferMemoryConstraints, D> for &BufferMemoryConstraints
Source§impl<D: ResourceDialect, T0: Encode<u32, D>, T1: Encode<u32, D>, T2: Encode<bool, D>, T3: Encode<bool, D>, T4: Encode<bool, D>, T5: Encode<bool, D>, T6: Encode<bool, D>, T7: Encode<u32, D>, T8: Encode<Array<HeapType, 32>, D>> Encode<BufferMemoryConstraints, D> for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
impl<D: ResourceDialect, T0: Encode<u32, D>, T1: Encode<u32, D>, T2: Encode<bool, D>, T3: Encode<bool, D>, T4: Encode<bool, D>, T5: Encode<bool, D>, T6: Encode<bool, D>, T7: Encode<u32, D>, T8: Encode<Array<HeapType, 32>, D>> Encode<BufferMemoryConstraints, D> for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
Source§impl Hash for BufferMemoryConstraints
impl Hash for BufferMemoryConstraints
Source§impl Ord for BufferMemoryConstraints
impl Ord for BufferMemoryConstraints
Source§fn cmp(&self, other: &BufferMemoryConstraints) -> Ordering
fn cmp(&self, other: &BufferMemoryConstraints) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for BufferMemoryConstraints
impl PartialEq for BufferMemoryConstraints
Source§impl PartialOrd for BufferMemoryConstraints
impl PartialOrd for BufferMemoryConstraints
Source§impl TypeMarker for BufferMemoryConstraints
impl TypeMarker for BufferMemoryConstraints
Source§type Owned = BufferMemoryConstraints
type Owned = BufferMemoryConstraints
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
.§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 more§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.Source§impl ValueTypeMarker for BufferMemoryConstraints
impl ValueTypeMarker for BufferMemoryConstraints
Source§type Borrowed<'a> = &'a BufferMemoryConstraints
type Borrowed<'a> = &'a BufferMemoryConstraints
Encode<Self>
type cheaply obtainable from &Self::Owned
. There are three cases: Read moreimpl Copy for BufferMemoryConstraints
impl Eq for BufferMemoryConstraints
impl Persistable for BufferMemoryConstraints
impl StructuralPartialEq for BufferMemoryConstraints
Auto Trait Implementations§
impl Freeze for BufferMemoryConstraints
impl RefUnwindSafe for BufferMemoryConstraints
impl Send for BufferMemoryConstraints
impl Sync for BufferMemoryConstraints
impl Unpin for BufferMemoryConstraints
impl UnwindSafe for BufferMemoryConstraints
Blanket Implementations§
§impl<T> Body for Twhere
T: Persistable,
impl<T> Body for Twhere
T: Persistable,
§type MarkerAtTopLevel = T
type MarkerAtTopLevel = T
§type MarkerInResultUnion = T
type MarkerInResultUnion = T
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)