Skip to main content

HostClass

Enum HostClass 

Source
pub enum HostClass {
    X86_64Avx512,
    X86_64Avx2,
    X86_64Scalar,
    Aarch64Apple,
    Aarch64,
    Generic,
}
Expand description

The class of the machine, keyed by the kernel dispatch it will take.

threadteam::HostClass re-exported, so the enum and its detect are the ones the placement token uses and cannot drift from them. The upstream doc below still names strided-rs among the crates that keep a hand-synced copy; this crate no longer does.

§Compatibility

This is a type-identity change, not a rename: strided_perm::HostClass is now the same type as threadteam::HostClass instead of a distinct copy. A downstream crate that implemented its own trait for both types compiles against the old pair and fails with E0119 (conflicting implementations) against this one. Code that names the type, compares it, or matches on its variants is unaffected. The class of the machine, keyed by the kernel dispatch it will take, not by the CPU model. Detected once per process by HostClass::detect.

The same enum and the same detect are kept in sync by hand in strided-rs, tcontract-rs and faer’s cost tables: each crate owns a table of its own kernels keyed by this class.

Variants§

§

X86_64Avx512

x86_64 with AVX-512F at run time (x86_64-avx512).

§

X86_64Avx2

x86_64 with AVX2 and FMA, without AVX-512F (x86_64-avx2).

§

X86_64Scalar

Any other x86_64 (x86_64-scalar).

§

Aarch64Apple

aarch64 on macOS (aarch64-apple).

§

Aarch64

Any other aarch64 (aarch64).

§

Generic

Everything else (generic).

Implementations§

Source§

impl HostClass

Source

pub fn detect() -> HostClass

The class of this host, detected at the first call and cached (OnceLock; is_x86_feature_detected! on x86_64).

Source

pub const fn name(self) -> &'static str

The class name used in the docs and the tables: x86_64-avx512, x86_64-avx2, x86_64-scalar, aarch64-apple, aarch64, generic.

Trait Implementations§

Source§

impl Clone for HostClass

Source§

fn clone(&self) -> HostClass

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for HostClass

Source§

impl Debug for HostClass

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Eq for HostClass

Source§

impl Hash for HostClass

Source§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for HostClass

Source§

fn eq(&self, other: &HostClass) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for HostClass

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.