pub trait SliceExt<Token>:
Native<Token>
+ Slice<Token, W1>
+ Slice<Token, W2>
+ Slice<Token, W4>
+ Slice<Token, W8>
+ Slice<Token, NativeWidth<Self, Token>>where
Token: Token,{
Show 30 methods
// Provided methods
unsafe fn read_unchecked_native(
&self,
token: Token,
) -> <Self as Slice<Token, <Self as Native<Token>>::Width>>::Vector { ... }
fn read_native(
&self,
token: Token,
) -> <Self as Slice<Token, <Self as Native<Token>>::Width>>::Vector { ... }
fn align_native(
&self,
token: Token,
) -> (&[<<Self as Slice<Token, <Self as Native<Token>>::Width>>::Vector as Vector>::Scalar], &[<Self as Slice<Token, <Self as Native<Token>>::Width>>::Vector], &[<<Self as Slice<Token, <Self as Native<Token>>::Width>>::Vector as Vector>::Scalar]) { ... }
fn align_native_mut(
&mut self,
token: Token,
) -> (&mut [<<Self as Slice<Token, <Self as Native<Token>>::Width>>::Vector as Vector>::Scalar], &mut [<Self as Slice<Token, <Self as Native<Token>>::Width>>::Vector], &mut [<<Self as Slice<Token, <Self as Native<Token>>::Width>>::Vector as Vector>::Scalar]) { ... }
fn overlapping_native(
&self,
token: Token,
) -> Overlapping<'_, <Self as Slice<Token, <Self as Native<Token>>::Width>>::Vector> { ... }
fn overlapping_native_mut(
&mut self,
token: Token,
) -> OverlappingMut<'_, <Self as Slice<Token, <Self as Native<Token>>::Width>>::Vector> { ... }
unsafe fn read_unchecked1(
&self,
token: Token,
) -> <Self as Slice<Token, W1>>::Vector { ... }
fn read1(&self, token: Token) -> <Self as Slice<Token, W1>>::Vector { ... }
fn align1(
&self,
token: Token,
) -> (&[<<Self as Slice<Token, W1>>::Vector as Vector>::Scalar], &[<Self as Slice<Token, W1>>::Vector], &[<<Self as Slice<Token, W1>>::Vector as Vector>::Scalar]) { ... }
fn align1_mut(
&mut self,
token: Token,
) -> (&mut [<<Self as Slice<Token, W1>>::Vector as Vector>::Scalar], &mut [<Self as Slice<Token, W1>>::Vector], &mut [<<Self as Slice<Token, W1>>::Vector as Vector>::Scalar]) { ... }
fn overlapping1(
&self,
token: Token,
) -> Overlapping<'_, <Self as Slice<Token, W1>>::Vector> { ... }
fn overlapping1_mut(
&mut self,
token: Token,
) -> OverlappingMut<'_, <Self as Slice<Token, W1>>::Vector> { ... }
unsafe fn read_unchecked2(
&self,
token: Token,
) -> <Self as Slice<Token, W2>>::Vector { ... }
fn read2(&self, token: Token) -> <Self as Slice<Token, W2>>::Vector { ... }
fn align2(
&self,
token: Token,
) -> (&[<<Self as Slice<Token, W2>>::Vector as Vector>::Scalar], &[<Self as Slice<Token, W2>>::Vector], &[<<Self as Slice<Token, W2>>::Vector as Vector>::Scalar]) { ... }
fn align2_mut(
&mut self,
token: Token,
) -> (&mut [<<Self as Slice<Token, W2>>::Vector as Vector>::Scalar], &mut [<Self as Slice<Token, W2>>::Vector], &mut [<<Self as Slice<Token, W2>>::Vector as Vector>::Scalar]) { ... }
fn overlapping2(
&self,
token: Token,
) -> Overlapping<'_, <Self as Slice<Token, W2>>::Vector> { ... }
fn overlapping2_mut(
&mut self,
token: Token,
) -> OverlappingMut<'_, <Self as Slice<Token, W2>>::Vector> { ... }
unsafe fn read_unchecked4(
&self,
token: Token,
) -> <Self as Slice<Token, W4>>::Vector { ... }
fn read4(&self, token: Token) -> <Self as Slice<Token, W4>>::Vector { ... }
fn align4(
&self,
token: Token,
) -> (&[<<Self as Slice<Token, W4>>::Vector as Vector>::Scalar], &[<Self as Slice<Token, W4>>::Vector], &[<<Self as Slice<Token, W4>>::Vector as Vector>::Scalar]) { ... }
fn align4_mut(
&mut self,
token: Token,
) -> (&mut [<<Self as Slice<Token, W4>>::Vector as Vector>::Scalar], &mut [<Self as Slice<Token, W4>>::Vector], &mut [<<Self as Slice<Token, W4>>::Vector as Vector>::Scalar]) { ... }
fn overlapping4(
&self,
token: Token,
) -> Overlapping<'_, <Self as Slice<Token, W4>>::Vector> { ... }
fn overlapping4_mut(
&mut self,
token: Token,
) -> OverlappingMut<'_, <Self as Slice<Token, W4>>::Vector> { ... }
unsafe fn read_unchecked8(
&self,
token: Token,
) -> <Self as Slice<Token, W8>>::Vector { ... }
fn read8(&self, token: Token) -> <Self as Slice<Token, W8>>::Vector { ... }
fn align8(
&self,
token: Token,
) -> (&[<<Self as Slice<Token, W8>>::Vector as Vector>::Scalar], &[<Self as Slice<Token, W8>>::Vector], &[<<Self as Slice<Token, W8>>::Vector as Vector>::Scalar]) { ... }
fn align8_mut(
&mut self,
token: Token,
) -> (&mut [<<Self as Slice<Token, W8>>::Vector as Vector>::Scalar], &mut [<Self as Slice<Token, W8>>::Vector], &mut [<<Self as Slice<Token, W8>>::Vector as Vector>::Scalar]) { ... }
fn overlapping8(
&self,
token: Token,
) -> Overlapping<'_, <Self as Slice<Token, W8>>::Vector> { ... }
fn overlapping8_mut(
&mut self,
token: Token,
) -> OverlappingMut<'_, <Self as Slice<Token, W8>>::Vector> { ... }
}
Expand description
A slice of scalars, supporting all vector widths.
Provided Methods§
Sourceunsafe fn read_unchecked_native(
&self,
token: Token,
) -> <Self as Slice<Token, <Self as Native<Token>>::Width>>::Vector
unsafe fn read_unchecked_native( &self, token: Token, ) -> <Self as Slice<Token, <Self as Native<Token>>::Width>>::Vector
Read a vector with the native number of lanes from a slice without checking the length.
See read_unchecked
.
Sourcefn read_native(
&self,
token: Token,
) -> <Self as Slice<Token, <Self as Native<Token>>::Width>>::Vector
fn read_native( &self, token: Token, ) -> <Self as Slice<Token, <Self as Native<Token>>::Width>>::Vector
Read a vector with the native number of lanes from a slice.
See read
.
Sourcefn align_native(
&self,
token: Token,
) -> (&[<<Self as Slice<Token, <Self as Native<Token>>::Width>>::Vector as Vector>::Scalar], &[<Self as Slice<Token, <Self as Native<Token>>::Width>>::Vector], &[<<Self as Slice<Token, <Self as Native<Token>>::Width>>::Vector as Vector>::Scalar])
fn align_native( &self, token: Token, ) -> (&[<<Self as Slice<Token, <Self as Native<Token>>::Width>>::Vector as Vector>::Scalar], &[<Self as Slice<Token, <Self as Native<Token>>::Width>>::Vector], &[<<Self as Slice<Token, <Self as Native<Token>>::Width>>::Vector as Vector>::Scalar])
Align a slice of scalars to vectors with the native number of lanes .
See align
.
Sourcefn align_native_mut(
&mut self,
token: Token,
) -> (&mut [<<Self as Slice<Token, <Self as Native<Token>>::Width>>::Vector as Vector>::Scalar], &mut [<Self as Slice<Token, <Self as Native<Token>>::Width>>::Vector], &mut [<<Self as Slice<Token, <Self as Native<Token>>::Width>>::Vector as Vector>::Scalar])
fn align_native_mut( &mut self, token: Token, ) -> (&mut [<<Self as Slice<Token, <Self as Native<Token>>::Width>>::Vector as Vector>::Scalar], &mut [<Self as Slice<Token, <Self as Native<Token>>::Width>>::Vector], &mut [<<Self as Slice<Token, <Self as Native<Token>>::Width>>::Vector as Vector>::Scalar])
Align a slice of scalars to vectors with the native number of lanes .
See align_mut
.
Sourcefn overlapping_native(
&self,
token: Token,
) -> Overlapping<'_, <Self as Slice<Token, <Self as Native<Token>>::Width>>::Vector>
fn overlapping_native( &self, token: Token, ) -> Overlapping<'_, <Self as Slice<Token, <Self as Native<Token>>::Width>>::Vector>
Create a slice of overlapping vectors of the native number of lanes from a slice of scalars.
See overlapping
.
Sourcefn overlapping_native_mut(
&mut self,
token: Token,
) -> OverlappingMut<'_, <Self as Slice<Token, <Self as Native<Token>>::Width>>::Vector>
fn overlapping_native_mut( &mut self, token: Token, ) -> OverlappingMut<'_, <Self as Slice<Token, <Self as Native<Token>>::Width>>::Vector>
Create a mutable slice of overlapping vectors of the native number of lanes from a slice of scalars.
See overlapping_mut
.
Sourceunsafe fn read_unchecked1(
&self,
token: Token,
) -> <Self as Slice<Token, W1>>::Vector
unsafe fn read_unchecked1( &self, token: Token, ) -> <Self as Slice<Token, W1>>::Vector
Read a vector with 1 lane from a slice without checking the length.
See read_unchecked
.
Sourcefn read1(&self, token: Token) -> <Self as Slice<Token, W1>>::Vector
fn read1(&self, token: Token) -> <Self as Slice<Token, W1>>::Vector
Read a vector with 1 lane from a slice.
See read
.
Sourcefn align1(
&self,
token: Token,
) -> (&[<<Self as Slice<Token, W1>>::Vector as Vector>::Scalar], &[<Self as Slice<Token, W1>>::Vector], &[<<Self as Slice<Token, W1>>::Vector as Vector>::Scalar])
fn align1( &self, token: Token, ) -> (&[<<Self as Slice<Token, W1>>::Vector as Vector>::Scalar], &[<Self as Slice<Token, W1>>::Vector], &[<<Self as Slice<Token, W1>>::Vector as Vector>::Scalar])
Align a slice of scalars to vectors with 1 lane .
See align
.
Sourcefn align1_mut(
&mut self,
token: Token,
) -> (&mut [<<Self as Slice<Token, W1>>::Vector as Vector>::Scalar], &mut [<Self as Slice<Token, W1>>::Vector], &mut [<<Self as Slice<Token, W1>>::Vector as Vector>::Scalar])
fn align1_mut( &mut self, token: Token, ) -> (&mut [<<Self as Slice<Token, W1>>::Vector as Vector>::Scalar], &mut [<Self as Slice<Token, W1>>::Vector], &mut [<<Self as Slice<Token, W1>>::Vector as Vector>::Scalar])
Align a slice of scalars to vectors with 1 lane .
See align_mut
.
Sourcefn overlapping1(
&self,
token: Token,
) -> Overlapping<'_, <Self as Slice<Token, W1>>::Vector>
fn overlapping1( &self, token: Token, ) -> Overlapping<'_, <Self as Slice<Token, W1>>::Vector>
Create a slice of overlapping vectors of 1 lane from a slice of scalars.
See overlapping
.
Sourcefn overlapping1_mut(
&mut self,
token: Token,
) -> OverlappingMut<'_, <Self as Slice<Token, W1>>::Vector>
fn overlapping1_mut( &mut self, token: Token, ) -> OverlappingMut<'_, <Self as Slice<Token, W1>>::Vector>
Create a mutable slice of overlapping vectors of 1 lane from a slice of scalars.
See overlapping_mut
.
Sourceunsafe fn read_unchecked2(
&self,
token: Token,
) -> <Self as Slice<Token, W2>>::Vector
unsafe fn read_unchecked2( &self, token: Token, ) -> <Self as Slice<Token, W2>>::Vector
Read a vector with 2 lanes from a slice without checking the length.
See read_unchecked
.
Sourcefn read2(&self, token: Token) -> <Self as Slice<Token, W2>>::Vector
fn read2(&self, token: Token) -> <Self as Slice<Token, W2>>::Vector
Read a vector with 2 lanes from a slice.
See read
.
Sourcefn align2(
&self,
token: Token,
) -> (&[<<Self as Slice<Token, W2>>::Vector as Vector>::Scalar], &[<Self as Slice<Token, W2>>::Vector], &[<<Self as Slice<Token, W2>>::Vector as Vector>::Scalar])
fn align2( &self, token: Token, ) -> (&[<<Self as Slice<Token, W2>>::Vector as Vector>::Scalar], &[<Self as Slice<Token, W2>>::Vector], &[<<Self as Slice<Token, W2>>::Vector as Vector>::Scalar])
Align a slice of scalars to vectors with 2 lanes .
See align
.
Sourcefn align2_mut(
&mut self,
token: Token,
) -> (&mut [<<Self as Slice<Token, W2>>::Vector as Vector>::Scalar], &mut [<Self as Slice<Token, W2>>::Vector], &mut [<<Self as Slice<Token, W2>>::Vector as Vector>::Scalar])
fn align2_mut( &mut self, token: Token, ) -> (&mut [<<Self as Slice<Token, W2>>::Vector as Vector>::Scalar], &mut [<Self as Slice<Token, W2>>::Vector], &mut [<<Self as Slice<Token, W2>>::Vector as Vector>::Scalar])
Align a slice of scalars to vectors with 2 lanes .
See align_mut
.
Sourcefn overlapping2(
&self,
token: Token,
) -> Overlapping<'_, <Self as Slice<Token, W2>>::Vector>
fn overlapping2( &self, token: Token, ) -> Overlapping<'_, <Self as Slice<Token, W2>>::Vector>
Create a slice of overlapping vectors of 2 lanes from a slice of scalars.
See overlapping
.
Sourcefn overlapping2_mut(
&mut self,
token: Token,
) -> OverlappingMut<'_, <Self as Slice<Token, W2>>::Vector>
fn overlapping2_mut( &mut self, token: Token, ) -> OverlappingMut<'_, <Self as Slice<Token, W2>>::Vector>
Create a mutable slice of overlapping vectors of 2 lanes from a slice of scalars.
See overlapping_mut
.
Sourceunsafe fn read_unchecked4(
&self,
token: Token,
) -> <Self as Slice<Token, W4>>::Vector
unsafe fn read_unchecked4( &self, token: Token, ) -> <Self as Slice<Token, W4>>::Vector
Read a vector with 4 lanes from a slice without checking the length.
See read_unchecked
.
Sourcefn read4(&self, token: Token) -> <Self as Slice<Token, W4>>::Vector
fn read4(&self, token: Token) -> <Self as Slice<Token, W4>>::Vector
Read a vector with 4 lanes from a slice.
See read
.
Sourcefn align4(
&self,
token: Token,
) -> (&[<<Self as Slice<Token, W4>>::Vector as Vector>::Scalar], &[<Self as Slice<Token, W4>>::Vector], &[<<Self as Slice<Token, W4>>::Vector as Vector>::Scalar])
fn align4( &self, token: Token, ) -> (&[<<Self as Slice<Token, W4>>::Vector as Vector>::Scalar], &[<Self as Slice<Token, W4>>::Vector], &[<<Self as Slice<Token, W4>>::Vector as Vector>::Scalar])
Align a slice of scalars to vectors with 4 lanes .
See align
.
Sourcefn align4_mut(
&mut self,
token: Token,
) -> (&mut [<<Self as Slice<Token, W4>>::Vector as Vector>::Scalar], &mut [<Self as Slice<Token, W4>>::Vector], &mut [<<Self as Slice<Token, W4>>::Vector as Vector>::Scalar])
fn align4_mut( &mut self, token: Token, ) -> (&mut [<<Self as Slice<Token, W4>>::Vector as Vector>::Scalar], &mut [<Self as Slice<Token, W4>>::Vector], &mut [<<Self as Slice<Token, W4>>::Vector as Vector>::Scalar])
Align a slice of scalars to vectors with 4 lanes .
See align_mut
.
Sourcefn overlapping4(
&self,
token: Token,
) -> Overlapping<'_, <Self as Slice<Token, W4>>::Vector>
fn overlapping4( &self, token: Token, ) -> Overlapping<'_, <Self as Slice<Token, W4>>::Vector>
Create a slice of overlapping vectors of 4 lanes from a slice of scalars.
See overlapping
.
Sourcefn overlapping4_mut(
&mut self,
token: Token,
) -> OverlappingMut<'_, <Self as Slice<Token, W4>>::Vector>
fn overlapping4_mut( &mut self, token: Token, ) -> OverlappingMut<'_, <Self as Slice<Token, W4>>::Vector>
Create a mutable slice of overlapping vectors of 4 lanes from a slice of scalars.
See overlapping_mut
.
Sourceunsafe fn read_unchecked8(
&self,
token: Token,
) -> <Self as Slice<Token, W8>>::Vector
unsafe fn read_unchecked8( &self, token: Token, ) -> <Self as Slice<Token, W8>>::Vector
Read a vector with 8 lanes from a slice without checking the length.
See read_unchecked
.
Sourcefn read8(&self, token: Token) -> <Self as Slice<Token, W8>>::Vector
fn read8(&self, token: Token) -> <Self as Slice<Token, W8>>::Vector
Read a vector with 8 lanes from a slice.
See read
.
Sourcefn align8(
&self,
token: Token,
) -> (&[<<Self as Slice<Token, W8>>::Vector as Vector>::Scalar], &[<Self as Slice<Token, W8>>::Vector], &[<<Self as Slice<Token, W8>>::Vector as Vector>::Scalar])
fn align8( &self, token: Token, ) -> (&[<<Self as Slice<Token, W8>>::Vector as Vector>::Scalar], &[<Self as Slice<Token, W8>>::Vector], &[<<Self as Slice<Token, W8>>::Vector as Vector>::Scalar])
Align a slice of scalars to vectors with 8 lanes .
See align
.
Sourcefn align8_mut(
&mut self,
token: Token,
) -> (&mut [<<Self as Slice<Token, W8>>::Vector as Vector>::Scalar], &mut [<Self as Slice<Token, W8>>::Vector], &mut [<<Self as Slice<Token, W8>>::Vector as Vector>::Scalar])
fn align8_mut( &mut self, token: Token, ) -> (&mut [<<Self as Slice<Token, W8>>::Vector as Vector>::Scalar], &mut [<Self as Slice<Token, W8>>::Vector], &mut [<<Self as Slice<Token, W8>>::Vector as Vector>::Scalar])
Align a slice of scalars to vectors with 8 lanes .
See align_mut
.
Sourcefn overlapping8(
&self,
token: Token,
) -> Overlapping<'_, <Self as Slice<Token, W8>>::Vector>
fn overlapping8( &self, token: Token, ) -> Overlapping<'_, <Self as Slice<Token, W8>>::Vector>
Create a slice of overlapping vectors of 8 lanes from a slice of scalars.
See overlapping
.
Sourcefn overlapping8_mut(
&mut self,
token: Token,
) -> OverlappingMut<'_, <Self as Slice<Token, W8>>::Vector>
fn overlapping8_mut( &mut self, token: Token, ) -> OverlappingMut<'_, <Self as Slice<Token, W8>>::Vector>
Create a mutable slice of overlapping vectors of 8 lanes from a slice of scalars.
See overlapping_mut
.
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.