fixed_bigint/fixeduint/
num_traits_identity.rs1use super::{FixedUInt, MachineWord};
2
3use num_traits::Zero;
4
5impl<T: MachineWord, const N: usize> num_traits::Zero for FixedUInt<T, N> {
6 fn zero() -> Self {
7 Self::new()
8 }
9 fn is_zero(&self) -> bool {
10 !self.array.iter().any(|v| !v.is_zero())
11 }
12}
13
14impl<T: MachineWord, const N: usize> num_traits::One for FixedUInt<T, N> {
15 fn one() -> Self {
16 let mut ret = Self::zero();
17 ret.array[0] = T::one();
18 ret
19 }
20}
21
22impl<T: MachineWord, const N: usize> num_traits::Bounded for FixedUInt<T, N> {
23 fn min_value() -> Self {
24 Self::zero()
25 }
26 fn max_value() -> Self {
27 FixedUInt {
28 array: [T::max_value(); N],
29 }
30 }
31}