pub trait ArraySimd<T, const N: usize>: Array + AsSlice<Item = T> {
Show 15 methods
// Required methods
const fn array_simd<const M: usize>(
self,
) -> ([Simd<T, M>; { _ }], [T; { _ }])
where T: SimdElement,
LaneCount<M>: SupportedLaneCount,
[(); { _ }]:;
const fn array_simd_ref<const M: usize>(
&self,
) -> (&[Simd<T, M>; { _ }], &[T; { _ }])
where T: SimdElement,
LaneCount<M>: SupportedLaneCount,
[(); { _ }]:;
const fn array_simd_mut<const M: usize>(
&mut self,
) -> (&mut [Simd<T, M>; { _ }], &mut [T; { _ }])
where T: SimdElement,
LaneCount<M>: SupportedLaneCount,
[(); { _ }]:;
const fn array_simd_pin_ref<const M: usize>(
self: Pin<&Self>,
) -> (Pin<&[Simd<T, M>; { _ }]>, Pin<&[T; { _ }]>)
where T: SimdElement,
LaneCount<M>: SupportedLaneCount,
[(); { _ }]:;
const fn array_simd_pin_mut<const M: usize>(
self: Pin<&mut Self>,
) -> (Pin<&mut [Simd<T, M>; { _ }]>, Pin<&mut [T; { _ }]>)
where T: SimdElement,
LaneCount<M>: SupportedLaneCount,
[(); { _ }]:;
const fn array_rsimd<const M: usize>(
self,
) -> ([T; { _ }], [Simd<T, M>; { _ }])
where T: SimdElement,
LaneCount<M>: SupportedLaneCount,
[(); { _ }]:;
const fn array_rsimd_ref<const M: usize>(
&self,
) -> (&[T; { _ }], &[Simd<T, M>; { _ }])
where T: SimdElement,
LaneCount<M>: SupportedLaneCount,
[(); { _ }]:;
const fn array_rsimd_mut<const M: usize>(
&mut self,
) -> (&mut [T; { _ }], &mut [Simd<T, M>; { _ }])
where T: SimdElement,
LaneCount<M>: SupportedLaneCount,
[(); { _ }]:;
const fn array_rsimd_pin_ref<const M: usize>(
self: Pin<&Self>,
) -> (Pin<&[T; { _ }]>, Pin<&[Simd<T, M>; { _ }]>)
where T: SimdElement,
LaneCount<M>: SupportedLaneCount,
[(); { _ }]:;
const fn array_rsimd_pin_mut<const M: usize>(
self: Pin<&mut Self>,
) -> (Pin<&mut [T; { _ }]>, Pin<&mut [Simd<T, M>; { _ }]>)
where T: SimdElement,
LaneCount<M>: SupportedLaneCount,
[(); { _ }]:;
const fn array_simd_exact<const M: usize>(self) -> [Simd<T, M>; { _ }]
where T: SimdElement,
LaneCount<M>: SupportedLaneCount,
[(); { _ }]:;
const fn array_simd_exact_ref<const M: usize>(&self) -> &[Simd<T, M>; { _ }]
where T: SimdElement,
LaneCount<M>: SupportedLaneCount,
[(); { _ }]:;
const fn array_simd_exact_mut<const M: usize>(
&mut self,
) -> &mut [Simd<T, M>; { _ }]
where T: SimdElement,
LaneCount<M>: SupportedLaneCount,
[(); { _ }]:;
const fn array_simd_exact_pin_ref<const M: usize>(
self: Pin<&Self>,
) -> Pin<&[Simd<T, M>; { _ }]>
where T: SimdElement,
LaneCount<M>: SupportedLaneCount,
[(); { _ }]:;
const fn array_simd_exact_pin_mut<const M: usize>(
self: Pin<&mut Self>,
) -> Pin<&mut [Simd<T, M>; { _ }]>
where T: SimdElement,
LaneCount<M>: SupportedLaneCount,
[(); { _ }]:;
}Required Methods§
const fn array_simd<const M: usize>(self) -> ([Simd<T, M>; { _ }], [T; { _ }])
const fn array_simd_ref<const M: usize>( &self, ) -> (&[Simd<T, M>; { _ }], &[T; { _ }])
const fn array_simd_mut<const M: usize>( &mut self, ) -> (&mut [Simd<T, M>; { _ }], &mut [T; { _ }])
const fn array_simd_pin_ref<const M: usize>( self: Pin<&Self>, ) -> (Pin<&[Simd<T, M>; { _ }]>, Pin<&[T; { _ }]>)
const fn array_simd_pin_mut<const M: usize>( self: Pin<&mut Self>, ) -> (Pin<&mut [Simd<T, M>; { _ }]>, Pin<&mut [T; { _ }]>)
const fn array_rsimd<const M: usize>(self) -> ([T; { _ }], [Simd<T, M>; { _ }])
const fn array_rsimd_ref<const M: usize>( &self, ) -> (&[T; { _ }], &[Simd<T, M>; { _ }])
const fn array_rsimd_mut<const M: usize>( &mut self, ) -> (&mut [T; { _ }], &mut [Simd<T, M>; { _ }])
const fn array_rsimd_pin_ref<const M: usize>( self: Pin<&Self>, ) -> (Pin<&[T; { _ }]>, Pin<&[Simd<T, M>; { _ }]>)
const fn array_rsimd_pin_mut<const M: usize>( self: Pin<&mut Self>, ) -> (Pin<&mut [T; { _ }]>, Pin<&mut [Simd<T, M>; { _ }]>)
const fn array_simd_exact<const M: usize>(self) -> [Simd<T, M>; { _ }]
const fn array_simd_exact_ref<const M: usize>(&self) -> &[Simd<T, M>; { _ }]
const fn array_simd_exact_mut<const M: usize>( &mut self, ) -> &mut [Simd<T, M>; { _ }]
const fn array_simd_exact_pin_ref<const M: usize>( self: Pin<&Self>, ) -> Pin<&[Simd<T, M>; { _ }]>
const fn array_simd_exact_pin_mut<const M: usize>( self: Pin<&mut Self>, ) -> Pin<&mut [Simd<T, M>; { _ }]>
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.