generic_array/ext_impls/
impl_as_slice.rs1use as_slice::{AsMutSlice, AsSlice};
2
3use crate::{ArrayLength, GenericArray};
4
5impl<T, N: ArrayLength> AsSlice for GenericArray<T, N> {
6 type Element = T;
7
8 #[inline(always)]
9 fn as_slice(&self) -> &[T] {
10 self.as_ref()
11 }
12}
13
14impl<T, N: ArrayLength> AsMutSlice for GenericArray<T, N> {
15 #[inline(always)]
16 fn as_mut_slice(&mut self) -> &mut [T] {
17 self.as_mut()
18 }
19}
20
21#[cfg(test)]
22mod tests {
23 use crate::{arr, typenum::U4, GenericArray};
24 use as_slice::{AsMutSlice, AsSlice};
25
26 #[test]
27 fn as_slice_impls() {
28 let mut a = arr![1u8, 2, 3, 4];
29 assert_eq!(<GenericArray<u8, U4> as AsSlice>::as_slice(&a), &[1, 2, 3, 4]);
30 <GenericArray<u8, U4> as AsMutSlice>::as_mut_slice(&mut a)[0] = 9;
31 assert_eq!(a[0], 9);
32 }
33}