fixed_bigint/fixeduint/
num_traits_identity.rs

1use 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}