#[non_exhaustive]pub enum MaxSimIsa {
Auto,
Scalar,
X86_64_V3,
X86_64_V4,
Neon,
Reference,
}Expand description
Instruction Set Architecture (ISA) selector for which multi-vector MaxSim kernel to build.
#[non_exhaustive] so adding a variant (e.g. for a new in-tree kernel) is
not a breaking change. Deliberately not Serialize/Deserialize —
callers wanting JSON support maintain their own shadow enum and convert
via From / TryFrom, so the library is not pinned to a particular
serialization format.
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.
Auto
Pick the highest ISA the host CPU supports.
Scalar
Pure-scalar (emulated SIMD) kernel — always available.
X86_64_V3
x86_64 AVX2 + FMA.
X86_64_V4
x86_64 AVX-512.
Neon
AArch64 Neon.
Reference
Non-SIMD reference fallback. Slow; serves as a correctness baseline.
Implementations§
Trait Implementations§
impl Copy for MaxSimIsa
impl Eq for MaxSimIsa
impl StructuralPartialEq for MaxSimIsa
Auto Trait Implementations§
impl Freeze for MaxSimIsa
impl RefUnwindSafe for MaxSimIsa
impl Send for MaxSimIsa
impl Sync for MaxSimIsa
impl Unpin for MaxSimIsa
impl UnsafeUnpin for MaxSimIsa
impl UnwindSafe for MaxSimIsa
Blanket Implementations§
impl<T> AsyncFriendly for T
impl<T> Boilerplate for 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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
Converts
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>
Converts
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