pub trait Swizzle<const N: usize> {
const INDEX: [usize; N];
// Provided methods
fn swizzle<T, const M: usize>(vector: Simd<T, M>) -> Simd<T, N>
where T: SimdElement,
LaneCount<N>: SupportedLaneCount,
LaneCount<M>: SupportedLaneCount { ... }
fn concat_swizzle<T, const M: usize>(
first: Simd<T, M>,
second: Simd<T, M>
) -> Simd<T, N>
where T: SimdElement,
LaneCount<N>: SupportedLaneCount,
LaneCount<M>: SupportedLaneCount { ... }
fn swizzle_mask<T, const M: usize>(mask: Mask<T, M>) -> Mask<T, N>
where T: MaskElement,
LaneCount<N>: SupportedLaneCount,
LaneCount<M>: SupportedLaneCount { ... }
fn concat_swizzle_mask<T, const M: usize>(
first: Mask<T, M>,
second: Mask<T, M>
) -> Mask<T, N>
where T: MaskElement,
LaneCount<N>: SupportedLaneCount,
LaneCount<M>: SupportedLaneCount { ... }
}
🔬This is a nightly-only experimental API. (
portable_simd
#86656)Expand description
Create a vector from the elements of another vector.
Required Associated Constants§
Provided Methods§
sourcefn swizzle<T, const M: usize>(vector: Simd<T, M>) -> Simd<T, N>
fn swizzle<T, const M: usize>(vector: Simd<T, M>) -> Simd<T, N>
🔬This is a nightly-only experimental API. (
portable_simd
#86656)Create a new vector from the elements of vector
.
Lane i
of the output is vector[Self::INDEX[i]]
.
sourcefn concat_swizzle<T, const M: usize>(
first: Simd<T, M>,
second: Simd<T, M>
) -> Simd<T, N>
fn concat_swizzle<T, const M: usize>( first: Simd<T, M>, second: Simd<T, M> ) -> Simd<T, N>
🔬This is a nightly-only experimental API. (
portable_simd
#86656)Create a new vector from the elements of first
and second
.
Lane i
of the output is concat[Self::INDEX[i]]
, where concat
is the concatenation of
first
and second
.
sourcefn swizzle_mask<T, const M: usize>(mask: Mask<T, M>) -> Mask<T, N>
fn swizzle_mask<T, const M: usize>(mask: Mask<T, M>) -> Mask<T, N>
🔬This is a nightly-only experimental API. (
portable_simd
#86656)Create a new mask from the elements of mask
.
Element i
of the output is concat[Self::INDEX[i]]
, where concat
is the concatenation of
first
and second
.
sourcefn concat_swizzle_mask<T, const M: usize>(
first: Mask<T, M>,
second: Mask<T, M>
) -> Mask<T, N>
fn concat_swizzle_mask<T, const M: usize>( first: Mask<T, M>, second: Mask<T, M> ) -> Mask<T, N>
🔬This is a nightly-only experimental API. (
portable_simd
#86656)Create a new mask from the elements of first
and second
.
Element i
of the output is concat[Self::INDEX[i]]
, where concat
is the concatenation of
first
and second
.
Object Safety§
This trait is not object safe.