1 #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd)]
2 #[cfg_attr(target_arch = "spirv", repr(simd))]
3 #[cfg_attr(not(target_arch = "spirv"), repr(C))]
4 pub struct XY<T> {
5     pub x: T,
6     pub y: T,
7 }
8 
9 #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd)]
10 #[cfg_attr(target_arch = "spirv", repr(simd))]
11 #[cfg_attr(not(target_arch = "spirv"), repr(C))]
12 pub struct Vec3<T> {
13     pub x: T,
14     pub y: T,
15     pub z: T,
16 }
17 
18 #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd)]
19 #[cfg_attr(target_arch = "spirv", repr(simd))]
20 #[cfg_attr(not(target_arch = "spirv"), repr(C))]
21 pub struct Vec4<T> {
22     pub x: T,
23     pub y: T,
24     pub z: T,
25     pub w: T,
26 }
27 
28 #[derive(Clone, Copy, Default, PartialEq, Eq, PartialOrd)]
29 #[cfg_attr(not(target_arch = "spirv"), repr(C))]
30 pub struct Cols2<V> {
31     pub x_axis: V,
32     pub y_axis: V,
33 }
34 
35 #[derive(Clone, Copy, Default, PartialEq, Eq, PartialOrd)]
36 #[cfg_attr(not(target_arch = "spirv"), repr(C))]
37 pub struct Cols3<V> {
38     pub x_axis: V,
39     pub y_axis: V,
40     pub z_axis: V,
41 }
42 
43 #[derive(Clone, Copy, Default, PartialEq, Eq, PartialOrd)]
44 #[cfg_attr(not(target_arch = "spirv"), repr(C))]
45 pub struct Cols4<V> {
46     pub x_axis: V,
47     pub y_axis: V,
48     pub z_axis: V,
49     pub w_axis: V,
50 }
51