generic_array/compat/
hybrid_array_0_4.rs1use hybrid_array_0_4::{Array as HybridArray, ArraySize, AsArrayMut, AsArrayRef, AssocArraySize};
2
3use crate::{ArrayLength, GenericArray};
4
5impl<T, N: ArrayLength + ArraySize> AssocArraySize for GenericArray<T, N> {
6 type Size = N;
7}
8
9impl<T, N: ArrayLength + ArraySize> AsArrayRef<T> for GenericArray<T, N> {
10 #[inline(always)]
11 fn as_array_ref(&self) -> &HybridArray<T, N> {
12 self.as_ha0_4()
13 }
14}
15
16impl<T, N: ArrayLength + ArraySize> AsArrayMut<T> for GenericArray<T, N> {
17 #[inline(always)]
18 fn as_array_mut(&mut self) -> &mut HybridArray<T, N> {
19 self.as_ha0_4_mut()
20 }
21}
22
23impl<T, N: ArrayLength + ArraySize> From<HybridArray<T, N>> for GenericArray<T, N> {
24 #[inline(always)]
25 fn from(value: HybridArray<T, N>) -> Self {
26 GenericArray::from_ha0_4(value)
27 }
28}
29
30impl<T, N: ArrayLength + ArraySize> From<GenericArray<T, N>> for HybridArray<T, N> {
31 #[inline(always)]
32 fn from(value: GenericArray<T, N>) -> Self {
33 value.into_ha0_4()
34 }
35}
36
37impl<T, N: ArrayLength + ArraySize> AsRef<HybridArray<T, N>> for GenericArray<T, N> {
38 #[inline(always)]
39 fn as_ref(&self) -> &HybridArray<T, N> {
40 self.as_ha0_4()
41 }
42}
43
44impl<T, N: ArrayLength + ArraySize> AsMut<HybridArray<T, N>> for GenericArray<T, N> {
45 #[inline(always)]
46 fn as_mut(&mut self) -> &mut HybridArray<T, N> {
47 self.as_ha0_4_mut()
48 }
49}
50
51impl<T, N: ArrayLength + ArraySize> GenericArray<T, N> {
52 #[inline(always)]
54 pub const fn as_ha0_4(&self) -> &HybridArray<T, N> {
55 unsafe { core::mem::transmute(self) }
56 }
57
58 #[rustversion::attr(since(1.83), const)]
62 #[inline(always)]
63 pub fn as_ha0_4_mut(&mut self) -> &mut HybridArray<T, N> {
64 unsafe { core::mem::transmute(self) }
65 }
66
67 #[inline(always)]
69 pub const fn into_ha0_4(self) -> HybridArray<T, N> {
70 unsafe { crate::const_transmute(self) }
71 }
72
73 #[inline(always)]
75 pub const fn from_ha0_4(value: HybridArray<T, N>) -> Self {
76 unsafe { crate::const_transmute(value) }
77 }
78}