pub trait JaggedArrayViewTrait<TVal, TNum, const N: usize>: Index<[usize; N]>where
TNum: AsPrimitive<usize> + Num,
U<N>: Sub<B1>,
<U<N> as Sub<B1>>::Output: ArrayLength,
Const<N>: ToUInt,{
// Required methods
fn is_empty(&self) -> bool;
fn len(&self) -> usize;
fn view<const M: usize, const R: usize>(
&self,
index: [usize; M],
) -> JaggedArrayView<'_, TVal, TNum, R>
where U<N>: Sub<U2> + Sub<B1> + Sub<U<M>>,
<U<N> as Sub<U2>>::Output: ArrayLength,
<U<N> as Sub<B1>>::Output: Sub<B1>,
<<U<N> as Sub<B1>>::Output as Sub<B1>>::Output: ArrayLength,
<U<N> as Sub<U<M>>>::Output: IsEqual<U<R>>,
U<R>: Sub<B1>,
<U<R> as Sub<B1>>::Output: ArrayLength,
<<U<N> as Sub<U<M>>>::Output as IsEqual<U<R>>>::Output: NonZero,
Const<N>: ToUInt,
Const<M>: ToUInt,
Const<R>: ToUInt;
unsafe fn view_unchecked<const M: usize, const R: usize>(
&self,
index: [usize; M],
) -> JaggedArrayView<'_, TVal, TNum, R>
where U<N>: Sub<U2> + Sub<B1> + Sub<U<M>>,
<U<N> as Sub<U2>>::Output: ArrayLength,
<U<N> as Sub<B1>>::Output: Sub<B1>,
<<U<N> as Sub<B1>>::Output as Sub<B1>>::Output: ArrayLength,
<U<N> as Sub<U<M>>>::Output: IsEqual<U<R>>,
U<R>: Sub<B1>,
<U<R> as Sub<B1>>::Output: ArrayLength,
<<U<N> as Sub<U<M>>>::Output as IsEqual<U<R>>>::Output: NonZero,
Const<N>: ToUInt,
Const<M>: ToUInt,
Const<R>: ToUInt;
unsafe fn get_unchecked(&self, index: [usize; N]) -> &TVal;
fn get(&self, index: [usize; N]) -> Option<&TVal>;
fn to_owned(self) -> JaggedArrayOwnedView<TVal, TNum, N>
where TVal: Clone;
}Required Methods§
fn is_empty(&self) -> bool
fn len(&self) -> usize
fn view<const M: usize, const R: usize>(
&self,
index: [usize; M],
) -> JaggedArrayView<'_, TVal, TNum, R>where
U<N>: Sub<U2> + Sub<B1> + Sub<U<M>>,
<U<N> as Sub<U2>>::Output: ArrayLength,
<U<N> as Sub<B1>>::Output: Sub<B1>,
<<U<N> as Sub<B1>>::Output as Sub<B1>>::Output: ArrayLength,
<U<N> as Sub<U<M>>>::Output: IsEqual<U<R>>,
U<R>: Sub<B1>,
<U<R> as Sub<B1>>::Output: ArrayLength,
<<U<N> as Sub<U<M>>>::Output as IsEqual<U<R>>>::Output: NonZero,
Const<N>: ToUInt,
Const<M>: ToUInt,
Const<R>: ToUInt,
Sourceunsafe fn view_unchecked<const M: usize, const R: usize>(
&self,
index: [usize; M],
) -> JaggedArrayView<'_, TVal, TNum, R>where
U<N>: Sub<U2> + Sub<B1> + Sub<U<M>>,
<U<N> as Sub<U2>>::Output: ArrayLength,
<U<N> as Sub<B1>>::Output: Sub<B1>,
<<U<N> as Sub<B1>>::Output as Sub<B1>>::Output: ArrayLength,
<U<N> as Sub<U<M>>>::Output: IsEqual<U<R>>,
U<R>: Sub<B1>,
<U<R> as Sub<B1>>::Output: ArrayLength,
<<U<N> as Sub<U<M>>>::Output as IsEqual<U<R>>>::Output: NonZero,
Const<N>: ToUInt,
Const<M>: ToUInt,
Const<R>: ToUInt,
unsafe fn view_unchecked<const M: usize, const R: usize>(
&self,
index: [usize; M],
) -> JaggedArrayView<'_, TVal, TNum, R>where
U<N>: Sub<U2> + Sub<B1> + Sub<U<M>>,
<U<N> as Sub<U2>>::Output: ArrayLength,
<U<N> as Sub<B1>>::Output: Sub<B1>,
<<U<N> as Sub<B1>>::Output as Sub<B1>>::Output: ArrayLength,
<U<N> as Sub<U<M>>>::Output: IsEqual<U<R>>,
U<R>: Sub<B1>,
<U<R> as Sub<B1>>::Output: ArrayLength,
<<U<N> as Sub<U<M>>>::Output as IsEqual<U<R>>>::Output: NonZero,
Const<N>: ToUInt,
Const<M>: ToUInt,
Const<R>: ToUInt,
§Safety
The caller must ensure that every value in index is within the respective bounds of the view
Sourceunsafe fn get_unchecked(&self, index: [usize; N]) -> &TVal
unsafe fn get_unchecked(&self, index: [usize; N]) -> &TVal
§Safety
The caller must ensure that index is within the bounds of the view
fn get(&self, index: [usize; N]) -> Option<&TVal>
fn to_owned(self) -> JaggedArrayOwnedView<TVal, TNum, N>where
TVal: Clone,
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.