pub struct CpuFeatures {
pub sse4_2: bool,
pub avx2: bool,
pub avx512f: bool,
pub avx512vbmi2: bool,
pub popcnt: bool,
pub aes_ni: bool,
pub clmul: bool,
pub bmi1: bool,
pub bmi2: bool,
pub lzcnt: bool,
pub neon: bool,
pub arm_crc32: bool,
}Expand description
CPU feature flags.
Detected using CPUID on x86/x86_64 or equivalent on other architectures.
Fields§
§sse4_2: boolSSE4.2 support (CRC32, string compare)
avx2: boolAVX2 support (256-bit SIMD)
avx512f: boolAVX-512 Foundation support (512-bit SIMD)
avx512vbmi2: boolAVX-512 VBMI2 support (byte/word manipulation)
popcnt: boolPOPCNT support (population count)
aes_ni: boolAES-NI support (hardware AES)
clmul: boolCLMUL support (carryless multiply, used for CRC)
bmi1: boolBMI1 support (bit manipulation)
bmi2: boolBMI2 support (bit manipulation)
lzcnt: boolLZCNT support (leading zero count)
neon: boolNEON support (ARM SIMD)
arm_crc32: boolCRC32 hardware support (ARM)
Implementations§
Source§impl CpuFeatures
impl CpuFeatures
Sourcepub fn has_hw_crc32(&self) -> bool
pub fn has_hw_crc32(&self) -> bool
Check if hardware CRC32 is available.
Sourcepub fn has_hw_aes(&self) -> bool
pub fn has_hw_aes(&self) -> bool
Check if hardware AES is available.
Sourcepub fn simd_level(&self) -> SimdLevel
pub fn simd_level(&self) -> SimdLevel
Get a summary of SIMD capabilities.
Trait Implementations§
Source§impl Clone for CpuFeatures
impl Clone for CpuFeatures
Source§fn clone(&self) -> CpuFeatures
fn clone(&self) -> CpuFeatures
Returns a duplicate of the value. Read more
1.0.0 · 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 CpuFeatures
impl Debug for CpuFeatures
Source§impl Default for CpuFeatures
impl Default for CpuFeatures
Source§fn default() -> CpuFeatures
fn default() -> CpuFeatures
Returns the “default value” for a type. Read more
Source§impl PartialEq for CpuFeatures
impl PartialEq for CpuFeatures
impl Copy for CpuFeatures
impl Eq for CpuFeatures
impl StructuralPartialEq for CpuFeatures
Auto Trait Implementations§
impl Freeze for CpuFeatures
impl RefUnwindSafe for CpuFeatures
impl Send for CpuFeatures
impl Sync for CpuFeatures
impl Unpin for CpuFeatures
impl UnwindSafe for CpuFeatures
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.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> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.