#[non_exhaustive]#[repr(u32)]pub enum Contiguity {
Unknown = 0,
Contiguous = 1,
NonContiguous = 2,
}Expand description
Whether a tensor’s memory is known to be physically contiguous
(Tensor::contiguity).
Capture and other DMA engines without an IOMMU (the i.MX 8M Plus ISI,
the vvcam ISP) can only write into physically contiguous memory.
Only memory this crate allocated from a Linux DMA heap is known
either way: the CMA heap is contiguous and the system heap is not.
An imported fd, and every other kind of memory, is Unknown.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Unknown = 0
Not known: an imported fd, or memory not allocated from a DMA heap.
Contiguous = 1
Allocated from the CMA heap.
NonContiguous = 2
Allocated from the system heap.
Implementations§
Source§impl Contiguity
impl Contiguity
Sourcepub const fn code(self) -> u32
pub const fn code(self) -> u32
The shared code for this variant. Identical on every surface.
const, deliberately: a downstream binding that cannot
write Variant = OtherEnum::Variant.code() in a #[pyclass]
discriminant position (PyO3 requires a literal there) can
still pin that literal to this value with a
const _: () = assert!(...) – a build-time check instead
of a hand-synced comment. See PyTensorMemory/PyPixelFormat
in crates/python-common/src/tensor.rs for the consumer.
Sourcepub fn from_code(code: u32) -> Option<Self>
pub fn from_code(code: u32) -> Option<Self>
Reject an unknown code rather than guessing at one.
Sourcepub fn from_str_code(s: &str) -> Option<Self>
pub fn from_str_code(s: &str) -> Option<Self>
Reject an unknown string rather than guessing at one.
Trait Implementations§
Source§impl Clone for Contiguity
impl Clone for Contiguity
impl Copy for Contiguity
Source§impl Debug for Contiguity
impl Debug for Contiguity
impl Eq for Contiguity
Source§impl Hash for Contiguity
impl Hash for Contiguity
Source§impl PartialEq for Contiguity
impl PartialEq for Contiguity
impl StructuralPartialEq for Contiguity
Auto Trait Implementations§
impl Freeze for Contiguity
impl RefUnwindSafe for Contiguity
impl Send for Contiguity
impl Sync for Contiguity
impl Unpin for Contiguity
impl UnsafeUnpin for Contiguity
impl UnwindSafe for Contiguity
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more