Skip to main content

hexga_math/geometry/vector/
array_extension.rs

1use super::*;
2
3impl<S, T, const N: usize> ToDimension<T, N> for S where S: ArrayWithSize<T, N> {}
4pub trait ToDimension<T, const N: usize>: ArrayWithSize<T, N>
5{
6    fn to_1d(self) -> Self::WithSize<1>
7    where
8        T: Default,
9    {
10        self.resize::<1>()
11    }
12    fn to_2d(self) -> Self::WithSize<2>
13    where
14        T: Default,
15    {
16        self.resize::<2>()
17    }
18    fn to_3d(self) -> Self::WithSize<3>
19    where
20        T: Default,
21    {
22        self.resize::<3>()
23    }
24    fn to_4d(self) -> Self::WithSize<4>
25    where
26        T: Default,
27    {
28        self.resize::<4>()
29    }
30}