pub struct Mask<T, const N: usize>(/* private fields */)
where
T: MaskElement,
LaneCount<N>: SupportedLaneCount;portable_simd)Expand description
A SIMD vector mask for N elements of width specified by Element.
Masks represent boolean inclusion/exclusion on a per-element basis.
The layout of this type is unspecified, and may change between platforms
and/or Rust versions, and code should not assume that it is equivalent to
[T; N].
Implementations§
Source§impl<T, const N: usize> Mask<T, N>
impl<T, const N: usize> Mask<T, N>
Sourcepub fn reverse(self) -> Mask<T, N>
🔬This is a nightly-only experimental API. (portable_simd)Available on crate feature std only.
pub fn reverse(self) -> Mask<T, N>
portable_simd)std only.Reverse the order of the elements in the mask.
Sourcepub fn rotate_elements_left<const OFFSET: usize>(self) -> Mask<T, N>
🔬This is a nightly-only experimental API. (portable_simd)Available on crate feature std only.
pub fn rotate_elements_left<const OFFSET: usize>(self) -> Mask<T, N>
portable_simd)std only.Rotates the mask such that the first OFFSET elements of the slice move to the end
while the last self.len() - OFFSET elements move to the front. After calling rotate_elements_left,
the element previously at index OFFSET will become the first element in the slice.
Sourcepub fn rotate_elements_right<const OFFSET: usize>(self) -> Mask<T, N>
🔬This is a nightly-only experimental API. (portable_simd)Available on crate feature std only.
pub fn rotate_elements_right<const OFFSET: usize>(self) -> Mask<T, N>
portable_simd)std only.Rotates the mask such that the first self.len() - OFFSET elements of the mask move to
the end while the last OFFSET elements move to the front. After calling rotate_elements_right,
the element previously at index self.len() - OFFSET will become the first element in the slice.
Sourcepub fn shift_elements_left<const OFFSET: usize>(
self,
padding: bool,
) -> Mask<T, N>
🔬This is a nightly-only experimental API. (portable_simd)Available on crate feature std only.
pub fn shift_elements_left<const OFFSET: usize>( self, padding: bool, ) -> Mask<T, N>
portable_simd)std only.Shifts the mask elements to the left by OFFSET, filling in with
padding from the right.
Sourcepub fn shift_elements_right<const OFFSET: usize>(
self,
padding: bool,
) -> Mask<T, N>
🔬This is a nightly-only experimental API. (portable_simd)Available on crate feature std only.
pub fn shift_elements_right<const OFFSET: usize>( self, padding: bool, ) -> Mask<T, N>
portable_simd)std only.Shifts the mask elements to the right by OFFSET, filling in with
padding from the left.
Sourcepub fn interleave(self, other: Mask<T, N>) -> (Mask<T, N>, Mask<T, N>) ⓘ
🔬This is a nightly-only experimental API. (portable_simd)Available on crate feature std only.
pub fn interleave(self, other: Mask<T, N>) -> (Mask<T, N>, Mask<T, N>) ⓘ
portable_simd)std only.Interleave two masks.
The resulting masks contain elements taken alternatively from self and other, first
filling the first result, and then the second.
The reverse of this operation is Mask::deinterleave.
let a = mask32x4::from_array([false, true, false, true]);
let b = mask32x4::from_array([false, false, true, true]);
let (x, y) = a.interleave(b);
assert_eq!(x.to_array(), [false, false, true, false]);
assert_eq!(y.to_array(), [false, true, true, true]);Sourcepub fn deinterleave(self, other: Mask<T, N>) -> (Mask<T, N>, Mask<T, N>) ⓘ
🔬This is a nightly-only experimental API. (portable_simd)Available on crate feature std only.
pub fn deinterleave(self, other: Mask<T, N>) -> (Mask<T, N>, Mask<T, N>) ⓘ
portable_simd)std only.Deinterleave two masks.
The first result takes every other element of self and then other, starting with
the first element.
The second result takes every other element of self and then other, starting with
the second element.
The reverse of this operation is Mask::interleave.
let a = mask32x4::from_array([false, true, false, true]);
let b = mask32x4::from_array([false, false, true, true]);
let (x, y) = a.deinterleave(b);
assert_eq!(x.to_array(), [false, false, false, true]);
assert_eq!(y.to_array(), [true, true, false, true]);Sourcepub fn resize<const M: usize>(self, value: bool) -> Mask<T, M>where
LaneCount<M>: SupportedLaneCount,
🔬This is a nightly-only experimental API. (portable_simd)Available on crate feature std only.
pub fn resize<const M: usize>(self, value: bool) -> Mask<T, M>where
LaneCount<M>: SupportedLaneCount,
portable_simd)std only.Resize a mask.
If M > N, extends the length of a mask, setting the new elements to value.
If M < N, truncates the mask to the first M elements.
let x = mask32x4::from_array([false, true, true, false]);
assert_eq!(x.resize::<8>(true).to_array(), [false, true, true, false, true, true, true, true]);
assert_eq!(x.resize::<2>(true).to_array(), [false, true]);Sourcepub fn extract<const START: usize, const LEN: usize>(self) -> Mask<T, LEN>where
LaneCount<LEN>: SupportedLaneCount,
🔬This is a nightly-only experimental API. (portable_simd)Available on crate feature std only.
pub fn extract<const START: usize, const LEN: usize>(self) -> Mask<T, LEN>where
LaneCount<LEN>: SupportedLaneCount,
portable_simd)std only.Extract a vector from another vector.
let x = mask32x4::from_array([false, true, true, false]);
assert_eq!(x.extract::<1, 2>().to_array(), [true, true]);Source§impl<T, const N: usize> Mask<T, N>
impl<T, const N: usize> Mask<T, N>
Sourcepub fn splat(value: bool) -> Mask<T, N>
🔬This is a nightly-only experimental API. (portable_simd)Available on crate feature std only.
pub fn splat(value: bool) -> Mask<T, N>
portable_simd)std only.Constructs a mask by setting all elements to the given value.
Sourcepub fn from_array(array: [bool; N]) -> Mask<T, N>
🔬This is a nightly-only experimental API. (portable_simd)Available on crate feature std only.
pub fn from_array(array: [bool; N]) -> Mask<T, N>
portable_simd)std only.Converts an array of bools to a SIMD mask.
Sourcepub fn to_array(self) -> [bool; N]
🔬This is a nightly-only experimental API. (portable_simd)Available on crate feature std only.
pub fn to_array(self) -> [bool; N]
portable_simd)std only.Converts a SIMD mask to an array of bools.
Sourcepub unsafe fn from_int_unchecked(value: Simd<T, N>) -> Mask<T, N>
🔬This is a nightly-only experimental API. (portable_simd)Available on crate feature std only.
pub unsafe fn from_int_unchecked(value: Simd<T, N>) -> Mask<T, N>
portable_simd)std only.Converts a vector of integers to a mask, where 0 represents false and -1
represents true.
§Safety
All elements must be either 0 or -1.
Sourcepub fn from_int(value: Simd<T, N>) -> Mask<T, N>
🔬This is a nightly-only experimental API. (portable_simd)Available on crate feature std only.
pub fn from_int(value: Simd<T, N>) -> Mask<T, N>
portable_simd)std only.Converts a vector of integers to a mask, where 0 represents false and -1
represents true.
§Panics
Panics if any element is not 0 or -1.
Sourcepub fn to_int(self) -> Simd<T, N>
🔬This is a nightly-only experimental API. (portable_simd)Available on crate feature std only.
pub fn to_int(self) -> Simd<T, N>
portable_simd)std only.Converts the mask to a vector of integers, where 0 represents false and -1
represents true.
Sourcepub fn cast<U>(self) -> Mask<U, N>where
U: MaskElement,
🔬This is a nightly-only experimental API. (portable_simd)Available on crate feature std only.
pub fn cast<U>(self) -> Mask<U, N>where
U: MaskElement,
portable_simd)std only.Converts the mask to a mask of any other element size.
Sourcepub unsafe fn test_unchecked(&self, index: usize) -> bool
🔬This is a nightly-only experimental API. (portable_simd)Available on crate feature std only.
pub unsafe fn test_unchecked(&self, index: usize) -> bool
portable_simd)std only.Sourcepub fn test(&self, index: usize) -> bool
🔬This is a nightly-only experimental API. (portable_simd)Available on crate feature std only.
pub fn test(&self, index: usize) -> bool
portable_simd)std only.Tests the value of the specified element.
§Panics
Panics if index is greater than or equal to the number of elements in the vector.
Sourcepub unsafe fn set_unchecked(&mut self, index: usize, value: bool)
🔬This is a nightly-only experimental API. (portable_simd)Available on crate feature std only.
pub unsafe fn set_unchecked(&mut self, index: usize, value: bool)
portable_simd)std only.Sourcepub fn set(&mut self, index: usize, value: bool)
🔬This is a nightly-only experimental API. (portable_simd)Available on crate feature std only.
pub fn set(&mut self, index: usize, value: bool)
portable_simd)std only.Sets the value of the specified element.
§Panics
Panics if index is greater than or equal to the number of elements in the vector.
Sourcepub fn any(self) -> bool
🔬This is a nightly-only experimental API. (portable_simd)Available on crate feature std only.
pub fn any(self) -> bool
portable_simd)std only.Returns true if any element is set, or false otherwise.
Sourcepub fn all(self) -> bool
🔬This is a nightly-only experimental API. (portable_simd)Available on crate feature std only.
pub fn all(self) -> bool
portable_simd)std only.Returns true if all elements are set, or false otherwise.
Sourcepub fn to_bitmask(self) -> u64
🔬This is a nightly-only experimental API. (portable_simd)Available on crate feature std only.
pub fn to_bitmask(self) -> u64
portable_simd)std only.Creates a bitmask from a mask.
Each bit is set if the corresponding element in the mask is true.
If the mask contains more than 64 elements, the bitmask is truncated to the first 64.
Sourcepub fn from_bitmask(bitmask: u64) -> Mask<T, N>
🔬This is a nightly-only experimental API. (portable_simd)Available on crate feature std only.
pub fn from_bitmask(bitmask: u64) -> Mask<T, N>
portable_simd)std only.Creates a mask from a bitmask.
For each bit, if it is set, the corresponding element in the mask is set to true.
If the mask contains more than 64 elements, the remainder are set to false.
Sourcepub fn first_set(self) -> Option<usize> ⓘ
🔬This is a nightly-only experimental API. (portable_simd)Available on crate feature std only.
pub fn first_set(self) -> Option<usize> ⓘ
portable_simd)std only.Finds the index of the first set element.
assert_eq!(mask32x8::splat(false).first_set(), None);
assert_eq!(mask32x8::splat(true).first_set(), Some(0));
let mask = mask32x8::from_array([false, true, false, false, true, false, false, true]);
assert_eq!(mask.first_set(), Some(1));Source§impl<T, const N: usize> Mask<T, N>
impl<T, const N: usize> Mask<T, N>
Sourcepub fn select<U>(
self,
true_values: Simd<U, N>,
false_values: Simd<U, N>,
) -> Simd<U, N>where
U: SimdElement<Mask = T>,
🔬This is a nightly-only experimental API. (portable_simd)Available on crate feature std only.
pub fn select<U>(
self,
true_values: Simd<U, N>,
false_values: Simd<U, N>,
) -> Simd<U, N>where
U: SimdElement<Mask = T>,
portable_simd)std only.Choose elements from two vectors.
For each element in the mask, choose the corresponding element from true_values if
that element mask is true, and false_values if that element mask is false.
§Examples
let a = Simd::from_array([0, 1, 2, 3]);
let b = Simd::from_array([4, 5, 6, 7]);
let mask = Mask::from_array([true, false, false, true]);
let c = mask.select(a, b);
assert_eq!(c.to_array(), [0, 5, 6, 3]);Sourcepub fn select_mask(
self,
true_values: Mask<T, N>,
false_values: Mask<T, N>,
) -> Mask<T, N>
🔬This is a nightly-only experimental API. (portable_simd)Available on crate feature std only.
pub fn select_mask( self, true_values: Mask<T, N>, false_values: Mask<T, N>, ) -> Mask<T, N>
portable_simd)std only.Choose elements from two masks.
For each element in the mask, choose the corresponding element from true_values if
that element mask is true, and false_values if that element mask is false.
§Examples
let a = Mask::<i32, 4>::from_array([true, true, false, false]);
let b = Mask::<i32, 4>::from_array([false, false, true, true]);
let mask = Mask::<i32, 4>::from_array([true, false, false, true]);
let c = mask.select_mask(a, b);
assert_eq!(c.to_array(), [true, false, true, false]);Trait Implementations§
Source§impl<T, const N: usize> BitAndAssign<bool> for Mask<T, N>
impl<T, const N: usize> BitAndAssign<bool> for Mask<T, N>
Source§fn bitand_assign(&mut self, rhs: bool)
fn bitand_assign(&mut self, rhs: bool)
&= operation. Read moreSource§impl<T, const N: usize> BitAndAssign for Mask<T, N>
impl<T, const N: usize> BitAndAssign for Mask<T, N>
Source§fn bitand_assign(&mut self, rhs: Mask<T, N>)
fn bitand_assign(&mut self, rhs: Mask<T, N>)
&= operation. Read moreSource§impl<T, const N: usize> BitOrAssign<bool> for Mask<T, N>
impl<T, const N: usize> BitOrAssign<bool> for Mask<T, N>
Source§fn bitor_assign(&mut self, rhs: bool)
fn bitor_assign(&mut self, rhs: bool)
|= operation. Read moreSource§impl<T, const N: usize> BitOrAssign for Mask<T, N>
impl<T, const N: usize> BitOrAssign for Mask<T, N>
Source§fn bitor_assign(&mut self, rhs: Mask<T, N>)
fn bitor_assign(&mut self, rhs: Mask<T, N>)
|= operation. Read moreSource§impl<T, const N: usize> BitXorAssign<bool> for Mask<T, N>
impl<T, const N: usize> BitXorAssign<bool> for Mask<T, N>
Source§fn bitxor_assign(&mut self, rhs: bool)
fn bitxor_assign(&mut self, rhs: bool)
^= operation. Read moreSource§impl<T, const N: usize> BitXorAssign for Mask<T, N>
impl<T, const N: usize> BitXorAssign for Mask<T, N>
Source§fn bitxor_assign(&mut self, rhs: Mask<T, N>)
fn bitxor_assign(&mut self, rhs: Mask<T, N>)
^= operation. Read moreSource§impl<const N: usize> From<Mask<i16, N>> for Mask<i32, N>where
LaneCount<N>: SupportedLaneCount,
impl<const N: usize> From<Mask<i16, N>> for Mask<i32, N>where
LaneCount<N>: SupportedLaneCount,
Source§impl<const N: usize> From<Mask<i16, N>> for Mask<i64, N>where
LaneCount<N>: SupportedLaneCount,
impl<const N: usize> From<Mask<i16, N>> for Mask<i64, N>where
LaneCount<N>: SupportedLaneCount,
Source§impl<const N: usize> From<Mask<i16, N>> for Mask<i8, N>where
LaneCount<N>: SupportedLaneCount,
impl<const N: usize> From<Mask<i16, N>> for Mask<i8, N>where
LaneCount<N>: SupportedLaneCount,
Source§impl<const N: usize> From<Mask<i16, N>> for Mask<isize, N>where
LaneCount<N>: SupportedLaneCount,
impl<const N: usize> From<Mask<i16, N>> for Mask<isize, N>where
LaneCount<N>: SupportedLaneCount,
Source§impl<const N: usize> From<Mask<i32, N>> for Mask<i16, N>where
LaneCount<N>: SupportedLaneCount,
impl<const N: usize> From<Mask<i32, N>> for Mask<i16, N>where
LaneCount<N>: SupportedLaneCount,
Source§impl<const N: usize> From<Mask<i32, N>> for Mask<i64, N>where
LaneCount<N>: SupportedLaneCount,
impl<const N: usize> From<Mask<i32, N>> for Mask<i64, N>where
LaneCount<N>: SupportedLaneCount,
Source§impl<const N: usize> From<Mask<i32, N>> for Mask<i8, N>where
LaneCount<N>: SupportedLaneCount,
impl<const N: usize> From<Mask<i32, N>> for Mask<i8, N>where
LaneCount<N>: SupportedLaneCount,
Source§impl<const N: usize> From<Mask<i32, N>> for Mask<isize, N>where
LaneCount<N>: SupportedLaneCount,
impl<const N: usize> From<Mask<i32, N>> for Mask<isize, N>where
LaneCount<N>: SupportedLaneCount,
Source§impl<const N: usize> From<Mask<i64, N>> for Mask<i16, N>where
LaneCount<N>: SupportedLaneCount,
impl<const N: usize> From<Mask<i64, N>> for Mask<i16, N>where
LaneCount<N>: SupportedLaneCount,
Source§impl<const N: usize> From<Mask<i64, N>> for Mask<i32, N>where
LaneCount<N>: SupportedLaneCount,
impl<const N: usize> From<Mask<i64, N>> for Mask<i32, N>where
LaneCount<N>: SupportedLaneCount,
Source§impl<const N: usize> From<Mask<i64, N>> for Mask<i8, N>where
LaneCount<N>: SupportedLaneCount,
impl<const N: usize> From<Mask<i64, N>> for Mask<i8, N>where
LaneCount<N>: SupportedLaneCount,
Source§impl<const N: usize> From<Mask<i64, N>> for Mask<isize, N>where
LaneCount<N>: SupportedLaneCount,
impl<const N: usize> From<Mask<i64, N>> for Mask<isize, N>where
LaneCount<N>: SupportedLaneCount,
Source§impl<const N: usize> From<Mask<i8, N>> for Mask<i16, N>where
LaneCount<N>: SupportedLaneCount,
impl<const N: usize> From<Mask<i8, N>> for Mask<i16, N>where
LaneCount<N>: SupportedLaneCount,
Source§impl<const N: usize> From<Mask<i8, N>> for Mask<i32, N>where
LaneCount<N>: SupportedLaneCount,
impl<const N: usize> From<Mask<i8, N>> for Mask<i32, N>where
LaneCount<N>: SupportedLaneCount,
Source§impl<const N: usize> From<Mask<i8, N>> for Mask<i64, N>where
LaneCount<N>: SupportedLaneCount,
impl<const N: usize> From<Mask<i8, N>> for Mask<i64, N>where
LaneCount<N>: SupportedLaneCount,
Source§impl<const N: usize> From<Mask<i8, N>> for Mask<isize, N>where
LaneCount<N>: SupportedLaneCount,
impl<const N: usize> From<Mask<i8, N>> for Mask<isize, N>where
LaneCount<N>: SupportedLaneCount,
Source§impl<const N: usize> From<Mask<isize, N>> for Mask<i16, N>where
LaneCount<N>: SupportedLaneCount,
impl<const N: usize> From<Mask<isize, N>> for Mask<i16, N>where
LaneCount<N>: SupportedLaneCount,
Source§impl<const N: usize> From<Mask<isize, N>> for Mask<i32, N>where
LaneCount<N>: SupportedLaneCount,
impl<const N: usize> From<Mask<isize, N>> for Mask<i32, N>where
LaneCount<N>: SupportedLaneCount,
Source§impl<const N: usize> From<Mask<isize, N>> for Mask<i64, N>where
LaneCount<N>: SupportedLaneCount,
impl<const N: usize> From<Mask<isize, N>> for Mask<i64, N>where
LaneCount<N>: SupportedLaneCount,
Source§impl<const N: usize> From<Mask<isize, N>> for Mask<i8, N>where
LaneCount<N>: SupportedLaneCount,
impl<const N: usize> From<Mask<isize, N>> for Mask<i8, N>where
LaneCount<N>: SupportedLaneCount,
Source§impl<T, const N: usize> PartialOrd for Mask<T, N>
impl<T, const N: usize> PartialOrd for Mask<T, N>
Source§impl<const N: usize> SimdOrd for Mask<i16, N>where
LaneCount<N>: SupportedLaneCount,
impl<const N: usize> SimdOrd for Mask<i16, N>where
LaneCount<N>: SupportedLaneCount,
Source§fn simd_max(self, other: Mask<i16, N>) -> Mask<i16, N>
fn simd_max(self, other: Mask<i16, N>) -> Mask<i16, N>
portable_simd)other.Source§impl<const N: usize> SimdOrd for Mask<i32, N>where
LaneCount<N>: SupportedLaneCount,
impl<const N: usize> SimdOrd for Mask<i32, N>where
LaneCount<N>: SupportedLaneCount,
Source§fn simd_max(self, other: Mask<i32, N>) -> Mask<i32, N>
fn simd_max(self, other: Mask<i32, N>) -> Mask<i32, N>
portable_simd)other.Source§impl<const N: usize> SimdOrd for Mask<i64, N>where
LaneCount<N>: SupportedLaneCount,
impl<const N: usize> SimdOrd for Mask<i64, N>where
LaneCount<N>: SupportedLaneCount,
Source§fn simd_max(self, other: Mask<i64, N>) -> Mask<i64, N>
fn simd_max(self, other: Mask<i64, N>) -> Mask<i64, N>
portable_simd)other.Source§impl<const N: usize> SimdOrd for Mask<i8, N>where
LaneCount<N>: SupportedLaneCount,
impl<const N: usize> SimdOrd for Mask<i8, N>where
LaneCount<N>: SupportedLaneCount,
Source§fn simd_max(self, other: Mask<i8, N>) -> Mask<i8, N>
fn simd_max(self, other: Mask<i8, N>) -> Mask<i8, N>
portable_simd)other.Source§impl<const N: usize> SimdOrd for Mask<isize, N>where
LaneCount<N>: SupportedLaneCount,
impl<const N: usize> SimdOrd for Mask<isize, N>where
LaneCount<N>: SupportedLaneCount,
Source§fn simd_max(self, other: Mask<isize, N>) -> Mask<isize, N>
fn simd_max(self, other: Mask<isize, N>) -> Mask<isize, N>
portable_simd)other.Source§impl<const N: usize> SimdPartialEq for Mask<i16, N>where
LaneCount<N>: SupportedLaneCount,
impl<const N: usize> SimdPartialEq for Mask<i16, N>where
LaneCount<N>: SupportedLaneCount,
Source§type Mask = Mask<i16, N>
type Mask = Mask<i16, N>
portable_simd)Source§impl<const N: usize> SimdPartialEq for Mask<i32, N>where
LaneCount<N>: SupportedLaneCount,
impl<const N: usize> SimdPartialEq for Mask<i32, N>where
LaneCount<N>: SupportedLaneCount,
Source§type Mask = Mask<i32, N>
type Mask = Mask<i32, N>
portable_simd)Source§impl<const N: usize> SimdPartialEq for Mask<i64, N>where
LaneCount<N>: SupportedLaneCount,
impl<const N: usize> SimdPartialEq for Mask<i64, N>where
LaneCount<N>: SupportedLaneCount,
Source§type Mask = Mask<i64, N>
type Mask = Mask<i64, N>
portable_simd)Source§impl<const N: usize> SimdPartialEq for Mask<i8, N>where
LaneCount<N>: SupportedLaneCount,
impl<const N: usize> SimdPartialEq for Mask<i8, N>where
LaneCount<N>: SupportedLaneCount,
Source§type Mask = Mask<i8, N>
type Mask = Mask<i8, N>
portable_simd)Source§impl<const N: usize> SimdPartialEq for Mask<isize, N>where
LaneCount<N>: SupportedLaneCount,
impl<const N: usize> SimdPartialEq for Mask<isize, N>where
LaneCount<N>: SupportedLaneCount,
Source§type Mask = Mask<isize, N>
type Mask = Mask<isize, N>
portable_simd)Source§impl<const N: usize> SimdPartialOrd for Mask<i16, N>where
LaneCount<N>: SupportedLaneCount,
impl<const N: usize> SimdPartialOrd for Mask<i16, N>where
LaneCount<N>: SupportedLaneCount,
Source§fn simd_lt(self, other: Mask<i16, N>) -> <Mask<i16, N> as SimdPartialEq>::Mask
fn simd_lt(self, other: Mask<i16, N>) -> <Mask<i16, N> as SimdPartialEq>::Mask
portable_simd)other.Source§fn simd_le(self, other: Mask<i16, N>) -> <Mask<i16, N> as SimdPartialEq>::Mask
fn simd_le(self, other: Mask<i16, N>) -> <Mask<i16, N> as SimdPartialEq>::Mask
portable_simd)other.Source§impl<const N: usize> SimdPartialOrd for Mask<i32, N>where
LaneCount<N>: SupportedLaneCount,
impl<const N: usize> SimdPartialOrd for Mask<i32, N>where
LaneCount<N>: SupportedLaneCount,
Source§fn simd_lt(self, other: Mask<i32, N>) -> <Mask<i32, N> as SimdPartialEq>::Mask
fn simd_lt(self, other: Mask<i32, N>) -> <Mask<i32, N> as SimdPartialEq>::Mask
portable_simd)other.Source§fn simd_le(self, other: Mask<i32, N>) -> <Mask<i32, N> as SimdPartialEq>::Mask
fn simd_le(self, other: Mask<i32, N>) -> <Mask<i32, N> as SimdPartialEq>::Mask
portable_simd)other.Source§impl<const N: usize> SimdPartialOrd for Mask<i64, N>where
LaneCount<N>: SupportedLaneCount,
impl<const N: usize> SimdPartialOrd for Mask<i64, N>where
LaneCount<N>: SupportedLaneCount,
Source§fn simd_lt(self, other: Mask<i64, N>) -> <Mask<i64, N> as SimdPartialEq>::Mask
fn simd_lt(self, other: Mask<i64, N>) -> <Mask<i64, N> as SimdPartialEq>::Mask
portable_simd)other.Source§fn simd_le(self, other: Mask<i64, N>) -> <Mask<i64, N> as SimdPartialEq>::Mask
fn simd_le(self, other: Mask<i64, N>) -> <Mask<i64, N> as SimdPartialEq>::Mask
portable_simd)other.Source§impl<const N: usize> SimdPartialOrd for Mask<i8, N>where
LaneCount<N>: SupportedLaneCount,
impl<const N: usize> SimdPartialOrd for Mask<i8, N>where
LaneCount<N>: SupportedLaneCount,
Source§fn simd_lt(self, other: Mask<i8, N>) -> <Mask<i8, N> as SimdPartialEq>::Mask
fn simd_lt(self, other: Mask<i8, N>) -> <Mask<i8, N> as SimdPartialEq>::Mask
portable_simd)other.Source§fn simd_le(self, other: Mask<i8, N>) -> <Mask<i8, N> as SimdPartialEq>::Mask
fn simd_le(self, other: Mask<i8, N>) -> <Mask<i8, N> as SimdPartialEq>::Mask
portable_simd)other.Source§impl<const N: usize> SimdPartialOrd for Mask<isize, N>where
LaneCount<N>: SupportedLaneCount,
impl<const N: usize> SimdPartialOrd for Mask<isize, N>where
LaneCount<N>: SupportedLaneCount,
Source§fn simd_lt(
self,
other: Mask<isize, N>,
) -> <Mask<isize, N> as SimdPartialEq>::Mask
fn simd_lt( self, other: Mask<isize, N>, ) -> <Mask<isize, N> as SimdPartialEq>::Mask
portable_simd)other.Source§fn simd_le(
self,
other: Mask<isize, N>,
) -> <Mask<isize, N> as SimdPartialEq>::Mask
fn simd_le( self, other: Mask<isize, N>, ) -> <Mask<isize, N> as SimdPartialEq>::Mask
portable_simd)other.impl<T, const N: usize> Copy for Mask<T, N>
Auto Trait Implementations§
impl<T, const N: usize> Freeze for Mask<T, N>where
T: Freeze,
impl<T, const N: usize> RefUnwindSafe for Mask<T, N>where
T: RefUnwindSafe,
impl<T, const N: usize> Send for Mask<T, N>where
T: Send,
impl<T, const N: usize> Sync for Mask<T, N>where
T: Sync,
impl<T, const N: usize> Unpin for Mask<T, N>where
T: Unpin,
impl<T, const N: usize> UnwindSafe for Mask<T, N>where
T: UnwindSafe,
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
Source§impl<T> ByteSized for T
impl<T> ByteSized for T
Source§const BYTE_ALIGN: usize = _
const BYTE_ALIGN: usize = _
Source§fn byte_align(&self) -> usize
fn byte_align(&self) -> usize
Source§fn ptr_size_ratio(&self) -> [usize; 2]
fn ptr_size_ratio(&self) -> [usize; 2]
Source§impl<T, R> Chain<R> for Twhere
T: ?Sized,
impl<T, R> Chain<R> for Twhere
T: ?Sized,
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> ExtAny for T
impl<T> ExtAny for T
Source§fn type_hash_with<H: Hasher>(&self, hasher: H) -> u64
fn type_hash_with<H: Hasher>(&self, hasher: H) -> u64
TypeId of Self using a custom hasher.Source§fn as_any_mut(&mut self) -> &mut dyn Anywhere
Self: Sized,
fn as_any_mut(&mut self) -> &mut dyn Anywhere
Self: Sized,
Source§impl<T> ExtMem for Twhere
T: ?Sized,
impl<T> ExtMem for Twhere
T: ?Sized,
Source§const NEEDS_DROP: bool = _
const NEEDS_DROP: bool = _
Source§fn mem_align_of<T>() -> usize
fn mem_align_of<T>() -> usize
Source§fn mem_align_of_val(&self) -> usize
fn mem_align_of_val(&self) -> usize
Source§fn mem_size_of<T>() -> usize
fn mem_size_of<T>() -> usize
Source§fn mem_size_of_val(&self) -> usize
fn mem_size_of_val(&self) -> usize
Source§fn mem_needs_drop(&self) -> bool
fn mem_needs_drop(&self) -> bool
true if dropping values of this type matters. Read moreSource§fn mem_forget(self)where
Self: Sized,
fn mem_forget(self)where
Self: Sized,
self without running its destructor. Read moreSource§fn mem_replace(&mut self, other: Self) -> Selfwhere
Self: Sized,
fn mem_replace(&mut self, other: Self) -> Selfwhere
Self: Sized,
Source§unsafe fn mem_zeroed<T>() -> T
unsafe fn mem_zeroed<T>() -> T
unsafe_layout only.T represented by the all-zero byte-pattern. Read moreSource§unsafe fn mem_transmute_copy<Src, Dst>(src: &Src) -> Dst
unsafe fn mem_transmute_copy<Src, Dst>(src: &Src) -> Dst
unsafe_layout only.T represented by the all-zero byte-pattern. Read moreSource§fn mem_as_bytes(&self) -> &[u8] ⓘ
fn mem_as_bytes(&self) -> &[u8] ⓘ
unsafe_slice only.§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> Hook for T
impl<T> Hook for T
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