1pub trait Zero {
2 fn zero() -> Self;
3}
4
5pub trait One {
6 fn one() -> Self;
7}
8
9impl Zero for f32 {
10 fn zero() -> Self {
11 0.0f32
12 }
13}
14
15impl One for f32 {
16 fn one() -> Self {
17 1.0f32
18 }
19}
20
21impl Zero for f64 {
22 fn zero() -> Self {
23 0.0f64
24 }
25}
26
27impl One for f64 {
28 fn one() -> Self {
29 1.0f64
30 }
31}
32
33impl Zero for i8 {
34 fn zero() -> Self {
35 0i8
36 }
37}
38
39impl One for i8 {
40 fn one() -> Self {
41 1i8
42 }
43}
44
45impl Zero for i16 {
46 fn zero() -> Self {
47 0i16
48 }
49}
50
51impl One for i16 {
52 fn one() -> Self {
53 1i16
54 }
55}
56
57impl Zero for i32 {
58 fn zero() -> Self {
59 0i32
60 }
61}
62
63impl One for i32 {
64 fn one() -> Self {
65 1i32
66 }
67}
68
69impl Zero for i64 {
70 fn zero() -> Self {
71 0i64
72 }
73}
74
75impl One for i64 {
76 fn one() -> Self {
77 1i64
78 }
79}
80
81impl Zero for u8 {
82 fn zero() -> Self {
83 0u8
84 }
85}
86
87impl One for u8 {
88 fn one() -> Self {
89 1u8
90 }
91}
92
93impl Zero for u16 {
94 fn zero() -> Self {
95 0u16
96 }
97}
98
99impl One for u16 {
100 fn one() -> Self {
101 1u16
102 }
103}
104
105impl Zero for u32 {
106 fn zero() -> Self {
107 0u32
108 }
109}
110
111impl One for u32 {
112 fn one() -> Self {
113 1u32
114 }
115}
116
117impl Zero for u64 {
118 fn zero() -> Self {
119 0u64
120 }
121}
122
123impl One for u64 {
124 fn one() -> Self {
125 1u64
126 }
127}