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 { ... }
}
portable_simd
)Expand description
Creates 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>
🔬This is a nightly-only experimental API. (portable_simd
)
fn swizzle<T, const M: usize>(vector: Simd<T, M>) -> Simd<T, N>
portable_simd
)Creates 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>
🔬This is a nightly-only experimental API. (portable_simd
)
fn concat_swizzle<T, const M: usize>( first: Simd<T, M>, second: Simd<T, M>, ) -> Simd<T, N>
portable_simd
)Creates 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>
🔬This is a nightly-only experimental API. (portable_simd
)
fn swizzle_mask<T, const M: usize>(mask: Mask<T, M>) -> Mask<T, N>
portable_simd
)Creates 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>
🔬This is a nightly-only experimental API. (portable_simd
)
fn concat_swizzle_mask<T, const M: usize>( first: Mask<T, M>, second: Mask<T, M>, ) -> Mask<T, N>
portable_simd
)Creates 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
.
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.