use crate::array::Array;
pub trait SlicedArray {
fn slice_typed(&self, offset: usize, length: usize) -> Self
where
Self: Sized;
unsafe fn slice_typed_unchecked(&self, offset: usize, length: usize) -> Self
where
Self: Sized;
}
impl<T: Array + Clone> SlicedArray for T {
fn slice_typed(&self, offset: usize, length: usize) -> Self {
let mut arr = self.clone();
arr.slice(offset, length);
arr
}
unsafe fn slice_typed_unchecked(&self, offset: usize, length: usize) -> Self {
let mut arr = self.clone();
arr.slice_unchecked(offset, length);
arr
}
}