Struct AlignedBuffer
pub struct AlignedBuffer<T> { /* private fields */ }Implementations§
§impl<T> AlignedBuffer<T>
impl<T> AlignedBuffer<T>
pub fn with_alignment(capacity: usize, alignment: usize) -> Result<Self>
pub fn with_alignment(capacity: usize, alignment: usize) -> Result<Self>
pub fn from_slice(data: &[T]) -> Result<Self>where
T: Copy,
pub fn from_slice(data: &[T]) -> Result<Self>where
T: Copy,
pub fn as_mut_slice(&mut self) -> &mut [T]
pub fn as_mut_slice(&mut self) -> &mut [T]
pub fn extend_from_slice(&mut self, data: &[T]) -> Result<()>where
T: Copy,
pub fn extend_from_slice(&mut self, data: &[T]) -> Result<()>where
T: Copy,
pub fn clear(&mut self)
pub fn clear(&mut self)
pub fn is_simd_aligned(&self) -> bool
pub fn is_simd_aligned(&self) -> bool
pub fn to_vec_cloned(&self) -> Vec<T>where
T: Copy,
pub fn to_vec_cloned(&self) -> Vec<T>where
T: Copy,
pub unsafe fn into_raw_parts(self) -> (*mut T, usize, usize, Layout)
pub unsafe fn into_raw_parts(self) -> (*mut T, usize, usize, Layout)
Methods from Deref<Target = [T]>§
1.5.0pub fn split_first(&self) -> Option<(&T, &[T])>
pub fn split_first(&self) -> Option<(&T, &[T])>
1.5.0pub fn split_first_mut(&mut self) -> Option<(&mut T, &mut [T])>
pub fn split_first_mut(&mut self) -> Option<(&mut T, &mut [T])>
1.5.0pub fn split_last(&self) -> Option<(&T, &[T])>
pub fn split_last(&self) -> Option<(&T, &[T])>
1.5.0pub fn split_last_mut(&mut self) -> Option<(&mut T, &mut [T])>
pub fn split_last_mut(&mut self) -> Option<(&mut T, &mut [T])>
1.77.0pub fn first_chunk<const N: usize>(&self) -> Option<&[T; N]>
pub fn first_chunk<const N: usize>(&self) -> Option<&[T; N]>
1.77.0pub fn first_chunk_mut<const N: usize>(&mut self) -> Option<&mut [T; N]>
pub fn first_chunk_mut<const N: usize>(&mut self) -> Option<&mut [T; N]>
1.77.0pub fn split_first_chunk<const N: usize>(&self) -> Option<(&[T; N], &[T])>
pub fn split_first_chunk<const N: usize>(&self) -> Option<(&[T; N], &[T])>
1.77.0pub fn split_first_chunk_mut<const N: usize>(
&mut self,
) -> Option<(&mut [T; N], &mut [T])>
pub fn split_first_chunk_mut<const N: usize>( &mut self, ) -> Option<(&mut [T; N], &mut [T])>
1.77.0pub fn split_last_chunk<const N: usize>(&self) -> Option<(&[T], &[T; N])>
pub fn split_last_chunk<const N: usize>(&self) -> Option<(&[T], &[T; N])>
1.77.0pub fn split_last_chunk_mut<const N: usize>(
&mut self,
) -> Option<(&mut [T], &mut [T; N])>
pub fn split_last_chunk_mut<const N: usize>( &mut self, ) -> Option<(&mut [T], &mut [T; N])>
1.77.0pub fn last_chunk<const N: usize>(&self) -> Option<&[T; N]>
pub fn last_chunk<const N: usize>(&self) -> Option<&[T; N]>
1.77.0pub fn last_chunk_mut<const N: usize>(&mut self) -> Option<&mut [T; N]>
pub fn last_chunk_mut<const N: usize>(&mut self) -> Option<&mut [T; N]>
1.0.0pub fn get<I>(&self, index: I) -> Option<&<I as SliceIndex<[T]>>::Output>where
I: SliceIndex<[T]>,
pub fn get<I>(&self, index: I) -> Option<&<I as SliceIndex<[T]>>::Output>where
I: SliceIndex<[T]>,
1.0.0pub fn get_mut<I>(
&mut self,
index: I,
) -> Option<&mut <I as SliceIndex<[T]>>::Output>where
I: SliceIndex<[T]>,
pub fn get_mut<I>(
&mut self,
index: I,
) -> Option<&mut <I as SliceIndex<[T]>>::Output>where
I: SliceIndex<[T]>,
1.0.0pub unsafe fn get_unchecked<I>(
&self,
index: I,
) -> &<I as SliceIndex<[T]>>::Outputwhere
I: SliceIndex<[T]>,
pub unsafe fn get_unchecked<I>(
&self,
index: I,
) -> &<I as SliceIndex<[T]>>::Outputwhere
I: SliceIndex<[T]>,
1.0.0pub unsafe fn get_unchecked_mut<I>(
&mut self,
index: I,
) -> &mut <I as SliceIndex<[T]>>::Outputwhere
I: SliceIndex<[T]>,
pub unsafe fn get_unchecked_mut<I>(
&mut self,
index: I,
) -> &mut <I as SliceIndex<[T]>>::Outputwhere
I: SliceIndex<[T]>,
1.0.0pub fn as_mut_ptr(&mut self) -> *mut T
pub fn as_mut_ptr(&mut self) -> *mut T
1.48.0pub fn as_ptr_range(&self) -> Range<*const T>
pub fn as_ptr_range(&self) -> Range<*const T>
1.48.0pub fn as_mut_ptr_range(&mut self) -> Range<*mut T>
pub fn as_mut_ptr_range(&mut self) -> Range<*mut T>
1.93.0pub fn as_mut_array<const N: usize>(&mut self) -> Option<&mut [T; N]>
pub fn as_mut_array<const N: usize>(&mut self) -> Option<&mut [T; N]>
pub unsafe fn swap_unchecked(&mut self, a: usize, b: usize)
🔬This is a nightly-only experimental API. (slice_swap_unchecked)
pub unsafe fn swap_unchecked(&mut self, a: usize, b: usize)
slice_swap_unchecked)1.0.0pub fn reverse(&mut self)
pub fn reverse(&mut self)
1.0.0pub fn chunks_mut(&mut self, chunk_size: usize) -> ChunksMut<'_, T>
pub fn chunks_mut(&mut self, chunk_size: usize) -> ChunksMut<'_, T>
1.31.0pub fn chunks_exact(&self, chunk_size: usize) -> ChunksExact<'_, T>
pub fn chunks_exact(&self, chunk_size: usize) -> ChunksExact<'_, T>
1.31.0pub fn chunks_exact_mut(&mut self, chunk_size: usize) -> ChunksExactMut<'_, T>
pub fn chunks_exact_mut(&mut self, chunk_size: usize) -> ChunksExactMut<'_, T>
1.88.0pub unsafe fn as_chunks_unchecked<const N: usize>(&self) -> &[[T; N]]
pub unsafe fn as_chunks_unchecked<const N: usize>(&self) -> &[[T; N]]
1.88.0pub fn as_rchunks<const N: usize>(&self) -> (&[T], &[[T; N]])
pub fn as_rchunks<const N: usize>(&self) -> (&[T], &[[T; N]])
1.88.0pub unsafe fn as_chunks_unchecked_mut<const N: usize>(
&mut self,
) -> &mut [[T; N]]
pub unsafe fn as_chunks_unchecked_mut<const N: usize>( &mut self, ) -> &mut [[T; N]]
1.88.0pub fn as_chunks_mut<const N: usize>(&mut self) -> (&mut [[T; N]], &mut [T])
pub fn as_chunks_mut<const N: usize>(&mut self) -> (&mut [[T; N]], &mut [T])
1.88.0pub fn as_rchunks_mut<const N: usize>(&mut self) -> (&mut [T], &mut [[T; N]])
pub fn as_rchunks_mut<const N: usize>(&mut self) -> (&mut [T], &mut [[T; N]])
1.94.0pub fn array_windows<const N: usize>(&self) -> ArrayWindows<'_, T, N>
pub fn array_windows<const N: usize>(&self) -> ArrayWindows<'_, T, N>
1.31.0pub fn rchunks_mut(&mut self, chunk_size: usize) -> RChunksMut<'_, T>
pub fn rchunks_mut(&mut self, chunk_size: usize) -> RChunksMut<'_, T>
1.31.0pub fn rchunks_exact(&self, chunk_size: usize) -> RChunksExact<'_, T>
pub fn rchunks_exact(&self, chunk_size: usize) -> RChunksExact<'_, T>
1.31.0pub fn rchunks_exact_mut(&mut self, chunk_size: usize) -> RChunksExactMut<'_, T>
pub fn rchunks_exact_mut(&mut self, chunk_size: usize) -> RChunksExactMut<'_, T>
1.77.0pub fn chunk_by_mut<F>(&mut self, pred: F) -> ChunkByMut<'_, T, F>
pub fn chunk_by_mut<F>(&mut self, pred: F) -> ChunkByMut<'_, T, F>
1.0.0pub fn split_at_mut(&mut self, mid: usize) -> (&mut [T], &mut [T])
pub fn split_at_mut(&mut self, mid: usize) -> (&mut [T], &mut [T])
1.79.0pub unsafe fn split_at_unchecked(&self, mid: usize) -> (&[T], &[T])
pub unsafe fn split_at_unchecked(&self, mid: usize) -> (&[T], &[T])
1.79.0pub unsafe fn split_at_mut_unchecked(
&mut self,
mid: usize,
) -> (&mut [T], &mut [T])
pub unsafe fn split_at_mut_unchecked( &mut self, mid: usize, ) -> (&mut [T], &mut [T])
1.80.0pub fn split_at_checked(&self, mid: usize) -> Option<(&[T], &[T])>
pub fn split_at_checked(&self, mid: usize) -> Option<(&[T], &[T])>
1.80.0pub fn split_at_mut_checked(
&mut self,
mid: usize,
) -> Option<(&mut [T], &mut [T])>
pub fn split_at_mut_checked( &mut self, mid: usize, ) -> Option<(&mut [T], &mut [T])>
1.51.0pub fn split_inclusive<F>(&self, pred: F) -> SplitInclusive<'_, T, F>
pub fn split_inclusive<F>(&self, pred: F) -> SplitInclusive<'_, T, F>
1.51.0pub fn split_inclusive_mut<F>(&mut self, pred: F) -> SplitInclusiveMut<'_, T, F>
pub fn split_inclusive_mut<F>(&mut self, pred: F) -> SplitInclusiveMut<'_, T, F>
1.27.0pub fn rsplit_mut<F>(&mut self, pred: F) -> RSplitMut<'_, T, F>
pub fn rsplit_mut<F>(&mut self, pred: F) -> RSplitMut<'_, T, F>
1.0.0pub fn splitn_mut<F>(&mut self, n: usize, pred: F) -> SplitNMut<'_, T, F>
pub fn splitn_mut<F>(&mut self, n: usize, pred: F) -> SplitNMut<'_, T, F>
1.0.0pub fn rsplitn_mut<F>(&mut self, n: usize, pred: F) -> RSplitNMut<'_, T, F>
pub fn rsplitn_mut<F>(&mut self, n: usize, pred: F) -> RSplitNMut<'_, T, F>
pub fn split_once<F>(&self, pred: F) -> Option<(&[T], &[T])>
🔬This is a nightly-only experimental API. (slice_split_once)
pub fn split_once<F>(&self, pred: F) -> Option<(&[T], &[T])>
slice_split_once)pub fn rsplit_once<F>(&self, pred: F) -> Option<(&[T], &[T])>
🔬This is a nightly-only experimental API. (slice_split_once)
pub fn rsplit_once<F>(&self, pred: F) -> Option<(&[T], &[T])>
slice_split_once)1.0.0pub fn starts_with(&self, needle: &[T]) -> boolwhere
T: PartialEq,
pub fn starts_with(&self, needle: &[T]) -> boolwhere
T: PartialEq,
1.51.0pub fn strip_prefix<P>(&self, prefix: &P) -> Option<&[T]>
pub fn strip_prefix<P>(&self, prefix: &P) -> Option<&[T]>
1.51.0pub fn strip_suffix<P>(&self, suffix: &P) -> Option<&[T]>
pub fn strip_suffix<P>(&self, suffix: &P) -> Option<&[T]>
pub fn strip_circumfix<S, P>(&self, prefix: &P, suffix: &S) -> Option<&[T]>
🔬This is a nightly-only experimental API. (strip_circumfix)
pub fn strip_circumfix<S, P>(&self, prefix: &P, suffix: &S) -> Option<&[T]>
strip_circumfix)pub fn trim_prefix<P>(&self, prefix: &P) -> &[T]
🔬This is a nightly-only experimental API. (trim_prefix_suffix)
pub fn trim_prefix<P>(&self, prefix: &P) -> &[T]
trim_prefix_suffix)pub fn trim_suffix<P>(&self, suffix: &P) -> &[T]
🔬This is a nightly-only experimental API. (trim_prefix_suffix)
pub fn trim_suffix<P>(&self, suffix: &P) -> &[T]
trim_prefix_suffix)1.0.0pub fn binary_search_by<'a, F>(&'a self, f: F) -> Result<usize, usize>
pub fn binary_search_by<'a, F>(&'a self, f: F) -> Result<usize, usize>
1.10.0pub fn binary_search_by_key<'a, B, F>(
&'a self,
b: &B,
f: F,
) -> Result<usize, usize>
pub fn binary_search_by_key<'a, B, F>( &'a self, b: &B, f: F, ) -> Result<usize, usize>
1.20.0pub fn sort_unstable(&mut self)where
T: Ord,
pub fn sort_unstable(&mut self)where
T: Ord,
1.20.0pub fn sort_unstable_by<F>(&mut self, compare: F)
pub fn sort_unstable_by<F>(&mut self, compare: F)
1.20.0pub fn sort_unstable_by_key<K, F>(&mut self, f: F)
pub fn sort_unstable_by_key<K, F>(&mut self, f: F)
pub fn partial_sort_unstable<R>(&mut self, range: R)
🔬This is a nightly-only experimental API. (slice_partial_sort_unstable)
pub fn partial_sort_unstable<R>(&mut self, range: R)
slice_partial_sort_unstable)pub fn partial_sort_unstable_by<F, R>(&mut self, range: R, compare: F)
🔬This is a nightly-only experimental API. (slice_partial_sort_unstable)
pub fn partial_sort_unstable_by<F, R>(&mut self, range: R, compare: F)
slice_partial_sort_unstable)pub fn partial_sort_unstable_by_key<K, F, R>(&mut self, range: R, f: F)
🔬This is a nightly-only experimental API. (slice_partial_sort_unstable)
pub fn partial_sort_unstable_by_key<K, F, R>(&mut self, range: R, f: F)
slice_partial_sort_unstable)1.49.0pub fn select_nth_unstable(
&mut self,
index: usize,
) -> (&mut [T], &mut T, &mut [T])where
T: Ord,
pub fn select_nth_unstable(
&mut self,
index: usize,
) -> (&mut [T], &mut T, &mut [T])where
T: Ord,
1.49.0pub fn select_nth_unstable_by<F>(
&mut self,
index: usize,
compare: F,
) -> (&mut [T], &mut T, &mut [T])
pub fn select_nth_unstable_by<F>( &mut self, index: usize, compare: F, ) -> (&mut [T], &mut T, &mut [T])
1.49.0pub fn select_nth_unstable_by_key<K, F>(
&mut self,
index: usize,
f: F,
) -> (&mut [T], &mut T, &mut [T])
pub fn select_nth_unstable_by_key<K, F>( &mut self, index: usize, f: F, ) -> (&mut [T], &mut T, &mut [T])
pub fn partition_dedup(&mut self) -> (&mut [T], &mut [T])where
T: PartialEq,
🔬This is a nightly-only experimental API. (slice_partition_dedup)
pub fn partition_dedup(&mut self) -> (&mut [T], &mut [T])where
T: PartialEq,
slice_partition_dedup)pub fn partition_dedup_by<F>(&mut self, same_bucket: F) -> (&mut [T], &mut [T])
🔬This is a nightly-only experimental API. (slice_partition_dedup)
pub fn partition_dedup_by<F>(&mut self, same_bucket: F) -> (&mut [T], &mut [T])
slice_partition_dedup)pub fn partition_dedup_by_key<K, F>(&mut self, key: F) -> (&mut [T], &mut [T])
🔬This is a nightly-only experimental API. (slice_partition_dedup)
pub fn partition_dedup_by_key<K, F>(&mut self, key: F) -> (&mut [T], &mut [T])
slice_partition_dedup)1.26.0pub fn rotate_left(&mut self, mid: usize)
pub fn rotate_left(&mut self, mid: usize)
1.26.0pub fn rotate_right(&mut self, k: usize)
pub fn rotate_right(&mut self, k: usize)
1.7.0pub fn clone_from_slice(&mut self, src: &[T])where
T: Clone,
pub fn clone_from_slice(&mut self, src: &[T])where
T: Clone,
1.9.0pub fn copy_from_slice(&mut self, src: &[T])where
T: Copy,
pub fn copy_from_slice(&mut self, src: &[T])where
T: Copy,
1.37.0pub fn copy_within<R>(&mut self, src: R, dest: usize)
pub fn copy_within<R>(&mut self, src: R, dest: usize)
1.27.0pub fn swap_with_slice(&mut self, other: &mut [T])
pub fn swap_with_slice(&mut self, other: &mut [T])
1.30.0pub unsafe fn align_to_mut<U>(&mut self) -> (&mut [T], &mut [U], &mut [T])
pub unsafe fn align_to_mut<U>(&mut self) -> (&mut [T], &mut [U], &mut [T])
pub fn as_simd<const LANES: usize>(&self) -> (&[T], &[Simd<T, LANES>], &[T])
🔬This is a nightly-only experimental API. (portable_simd)
pub fn as_simd<const LANES: usize>(&self) -> (&[T], &[Simd<T, LANES>], &[T])
portable_simd)pub fn as_simd_mut<const LANES: usize>(
&mut self,
) -> (&mut [T], &mut [Simd<T, LANES>], &mut [T])
🔬This is a nightly-only experimental API. (portable_simd)
pub fn as_simd_mut<const LANES: usize>( &mut self, ) -> (&mut [T], &mut [Simd<T, LANES>], &mut [T])
portable_simd)1.82.0pub fn is_sorted(&self) -> boolwhere
T: PartialOrd,
pub fn is_sorted(&self) -> boolwhere
T: PartialOrd,
1.82.0pub fn is_sorted_by_key<'a, F, K>(&'a self, f: F) -> bool
pub fn is_sorted_by_key<'a, F, K>(&'a self, f: F) -> bool
1.52.0pub fn partition_point<P>(&self, pred: P) -> usize
pub fn partition_point<P>(&self, pred: P) -> usize
1.87.0pub fn split_off<'a, R>(self: &mut &'a [T], range: R) -> Option<&'a [T]>where
R: OneSidedRange<usize>,
pub fn split_off<'a, R>(self: &mut &'a [T], range: R) -> Option<&'a [T]>where
R: OneSidedRange<usize>,
1.87.0pub fn split_off_mut<'a, R>(
self: &mut &'a mut [T],
range: R,
) -> Option<&'a mut [T]>where
R: OneSidedRange<usize>,
pub fn split_off_mut<'a, R>(
self: &mut &'a mut [T],
range: R,
) -> Option<&'a mut [T]>where
R: OneSidedRange<usize>,
1.87.0pub fn split_off_first<'a>(self: &mut &'a [T]) -> Option<&'a T>
pub fn split_off_first<'a>(self: &mut &'a [T]) -> Option<&'a T>
1.87.0pub fn split_off_first_mut<'a>(self: &mut &'a mut [T]) -> Option<&'a mut T>
pub fn split_off_first_mut<'a>(self: &mut &'a mut [T]) -> Option<&'a mut T>
1.87.0pub fn split_off_last<'a>(self: &mut &'a [T]) -> Option<&'a T>
pub fn split_off_last<'a>(self: &mut &'a [T]) -> Option<&'a T>
1.87.0pub fn split_off_last_mut<'a>(self: &mut &'a mut [T]) -> Option<&'a mut T>
pub fn split_off_last_mut<'a>(self: &mut &'a mut [T]) -> Option<&'a mut T>
1.86.0pub unsafe fn get_disjoint_unchecked_mut<I, const N: usize>(
&mut self,
indices: [I; N],
) -> [&mut <I as SliceIndex<[T]>>::Output; N]
pub unsafe fn get_disjoint_unchecked_mut<I, const N: usize>( &mut self, indices: [I; N], ) -> [&mut <I as SliceIndex<[T]>>::Output; N]
1.86.0pub fn get_disjoint_mut<I, const N: usize>(
&mut self,
indices: [I; N],
) -> Result<[&mut <I as SliceIndex<[T]>>::Output; N], GetDisjointMutError>
pub fn get_disjoint_mut<I, const N: usize>( &mut self, indices: [I; N], ) -> Result<[&mut <I as SliceIndex<[T]>>::Output; N], GetDisjointMutError>
1.94.0pub fn element_offset(&self, element: &T) -> Option<usize>
pub fn element_offset(&self, element: &T) -> Option<usize>
pub fn subslice_range(&self, subslice: &[T]) -> Option<Range<usize>>
🔬This is a nightly-only experimental API. (substr_range)
pub fn subslice_range(&self, subslice: &[T]) -> Option<Range<usize>>
substr_range)pub fn as_mut_slice(&mut self) -> &mut [T]
🔬This is a nightly-only experimental API. (str_as_str)
pub fn as_mut_slice(&mut self) -> &mut [T]
str_as_str)1.7.0pub fn sort_by_key<K, F>(&mut self, f: F)
pub fn sort_by_key<K, F>(&mut self, f: F)
1.34.0pub fn sort_by_cached_key<K, F>(&mut self, f: F)
pub fn sort_by_cached_key<K, F>(&mut self, f: F)
pub fn to_vec_in<A>(&self, alloc: A) -> Vec<T, A>
🔬This is a nightly-only experimental API. (allocator_api)
pub fn to_vec_in<A>(&self, alloc: A) -> Vec<T, A>
allocator_api)