#[non_exhaustive]pub enum ScopfDeviceClassLayout {
Contiguous {
producers_first: bool,
},
Interleaved,
}Expand description
How the two device classes sit in the simple_dispatchable_device section.
A model that stacks producers and consumers into one variable vector addresses a device by a per class offset, which is a bijection only when each class owns one unbroken run. Reading the order without that precondition is the one mistake this type makes unavailable.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Contiguous
Each class is one unbroken run. producers_first says which run
starts first.
Interleaved
The two classes interleave, so no per class offset addresses a device.
Implementations§
Source§impl ScopfDeviceClassLayout
impl ScopfDeviceClassLayout
Sourcepub fn producers_first(self) -> Option<bool>
pub fn producers_first(self) -> Option<bool>
Whether the producer run starts before the consumer run, or None
when the classes interleave and no offset scheme holds.
Trait Implementations§
Source§impl Clone for ScopfDeviceClassLayout
impl Clone for ScopfDeviceClassLayout
Source§fn clone(&self) -> ScopfDeviceClassLayout
fn clone(&self) -> ScopfDeviceClassLayout
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ScopfDeviceClassLayout
impl Debug for ScopfDeviceClassLayout
Source§impl<'de> Deserialize<'de> for ScopfDeviceClassLayout
impl<'de> Deserialize<'de> for ScopfDeviceClassLayout
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for ScopfDeviceClassLayout
impl PartialEq for ScopfDeviceClassLayout
Source§fn eq(&self, other: &ScopfDeviceClassLayout) -> bool
fn eq(&self, other: &ScopfDeviceClassLayout) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl Serialize for ScopfDeviceClassLayout
impl Serialize for ScopfDeviceClassLayout
impl Copy for ScopfDeviceClassLayout
impl Eq for ScopfDeviceClassLayout
impl StructuralPartialEq for ScopfDeviceClassLayout
Auto Trait Implementations§
impl Freeze for ScopfDeviceClassLayout
impl RefUnwindSafe for ScopfDeviceClassLayout
impl Send for ScopfDeviceClassLayout
impl Sync for ScopfDeviceClassLayout
impl Unpin for ScopfDeviceClassLayout
impl UnsafeUnpin for ScopfDeviceClassLayout
impl UnwindSafe for ScopfDeviceClassLayout
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more