Add copy_within to IndexSlice

This commit is contained in:
Jason Newcomb 2025-03-02 02:23:14 -05:00
parent 40dacd50b7
commit 52694034ba

View file

@ -1,6 +1,6 @@
use std::fmt; use std::fmt;
use std::marker::PhantomData; use std::marker::PhantomData;
use std::ops::{Index, IndexMut}; use std::ops::{Index, IndexMut, RangeBounds};
use std::slice::GetDisjointMutError::*; use std::slice::GetDisjointMutError::*;
use std::slice::{self, SliceIndex}; use std::slice::{self, SliceIndex};
@ -104,6 +104,17 @@ impl<I: Idx, T> IndexSlice<I, T> {
self.raw.swap(a.index(), b.index()) self.raw.swap(a.index(), b.index())
} }
#[inline]
pub fn copy_within(
&mut self,
src: impl IntoSliceIdx<I, [T], Output: RangeBounds<usize>>,
dest: I,
) where
T: Copy,
{
self.raw.copy_within(src.into_slice_idx(), dest.index());
}
#[inline] #[inline]
pub fn get<R: IntoSliceIdx<I, [T]>>( pub fn get<R: IntoSliceIdx<I, [T]>>(
&self, &self,