JaggedArrayViewTrait

Trait JaggedArrayViewTrait 

Source
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§

Source

fn is_empty(&self) -> bool

Source

fn len(&self) -> usize

Source

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,

Source

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

Source

unsafe fn get_unchecked(&self, index: [usize; N]) -> &TVal

§Safety

The caller must ensure that index is within the bounds of the view

Source

fn get(&self, index: [usize; N]) -> Option<&TVal>

Source

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.

Implementors§

Source§

impl<'a, TVal, TNum, const N: usize> JaggedArrayViewTrait<TVal, TNum, N> for JaggedArrayMutView<'a, TVal, TNum, N>
where TNum: Num + AsPrimitive<usize> + ConstOne + ConstZero, U<N>: Sub<B1> + ArrayLength, <U<N> as Sub<B1>>::Output: ArrayLength, Const<N>: ToUInt,

Source§

impl<'a, TVal, TNum, const N: usize> JaggedArrayViewTrait<TVal, TNum, N> for JaggedArrayView<'a, TVal, TNum, N>
where TNum: Num + AsPrimitive<usize> + ConstOne + ConstZero, U<N>: Sub<B1> + ArrayLength, <U<N> as Sub<B1>>::Output: ArrayLength, Const<N>: ToUInt,

Source§

impl<TVal, TBuffer, const N: usize> JaggedArrayViewTrait<TVal, <TBuffer as VecLike>::TI, N> for JaggedArray<TVal, TBuffer, N>
where TBuffer: VecLike, <TBuffer as VecLike>::TI: AsPrimitive<usize> + Num + ConstOne + ConstZero, U<N>: Sub<B1> + ArrayLength, <U<N> as Sub<B1>>::Output: ArrayLength, Const<N>: ToUInt,

Source§

impl<TVal, TNum, const N: usize> JaggedArrayViewTrait<TVal, TNum, N> for JaggedArrayOwnedView<TVal, TNum, N>
where TNum: Num + AsPrimitive<usize> + ConstOne + ConstZero, U<N>: Sub<B1> + ArrayLength, <U<N> as Sub<B1>>::Output: ArrayLength, Const<N>: ToUInt,