use crate::imp_prelude::*;
use crate::slice::MultiSlice;
impl<'a, A, D> ArrayView<'a, A, D>
where
D: Dimension,
{
pub fn split_at(self, axis: Axis, index: Ix) -> (Self, Self) {
unsafe {
let (left, right) = self.into_raw_view().split_at(axis, index);
(left.deref_into_view(), right.deref_into_view())
}
}
}
impl<'a, A, D> ArrayViewMut<'a, A, D>
where
D: Dimension,
{
pub fn split_at(self, axis: Axis, index: Ix) -> (Self, Self) {
unsafe {
let (left, right) = self.into_raw_view_mut().split_at(axis, index);
(left.deref_into_view_mut(), right.deref_into_view_mut())
}
}
pub fn multi_slice_move<M>(self, info: M) -> M::Output
where
M: MultiSlice<'a, A, D>,
{
info.multi_slice_move(self)
}
}