After #24, #25, and #26, these traits don't really need to exist and have largely been replaced by safe type conversions with appropriate bounds.
In lieu of ArrayOps<T, N> we instead can use
U: ArraySize<ArrayType<T> = [T; N]>> as a bound, which albeit a bit more verbose concretely describes the inner type of Array to the compiler.
The cast_slice_(to|from)_core(_mut) methods previously defined on the trait have been preserved, but as static methods of Array, making the change largely a drop in replacement. Places where they were being called as e.g. ArrayOps::cast_slice_to_core just need to be called as Array::cast_slice_to_core instead.
After #24, #25, and #26, these traits don't really need to exist and have largely been replaced by safe type conversions with appropriate bounds.
In lieu of
ArrayOps<T, N>
we instead can useU: ArraySize<ArrayType<T> = [T; N]>>
as a bound, which albeit a bit more verbose concretely describes the inner type ofArray
to the compiler.The
cast_slice_(to|from)_core(_mut)
methods previously defined on the trait have been preserved, but as static methods ofArray
, making the change largely a drop in replacement. Places where they were being called as e.g.ArrayOps::cast_slice_to_core
just need to be called asArray::cast_slice_to_core
instead.