pub trait Sealed {
type Unsigned: SimdElement;
const TRUE: Self;
const FALSE: Self;
// Required methods
fn valid<const N: usize>(values: Simd<Self, N>) -> bool
where LaneCount<N>: SupportedLaneCount,
Self: SimdElement;
fn eq(self, other: Self) -> bool;
fn to_usize(self) -> usize;
fn max_unsigned() -> u64;
}
🔬This is a nightly-only experimental API. (
portable_simd
#86656)Expand description
Not only does this seal the MaskElement
trait, but these functions prevent other traits
from bleeding into the parent bounds.
For example, eq
could be provided by requiring MaskElement: PartialEq
, but that would
prevent us from ever removing that bound, or from implementing MaskElement
on
non-PartialEq
types in the future.
Required Associated Constants§
const TRUE: Self
🔬This is a nightly-only experimental API. (
portable_simd
#86656)const FALSE: Self
🔬This is a nightly-only experimental API. (
portable_simd
#86656)Required Associated Types§
type Unsigned: SimdElement
🔬This is a nightly-only experimental API. (
portable_simd
#86656)Required Methods§
fn valid<const N: usize>(values: Simd<Self, N>) -> bool
🔬This is a nightly-only experimental API. (
portable_simd
#86656)fn eq(self, other: Self) -> bool
🔬This is a nightly-only experimental API. (
portable_simd
#86656)fn to_usize(self) -> usize
🔬This is a nightly-only experimental API. (
portable_simd
#86656)fn max_unsigned() -> u64
🔬This is a nightly-only experimental API. (
portable_simd
#86656)Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.