reweb3_num/buint/
consts.rs

1macro_rules! pos_const {
2    ($($name: ident $num: literal), *) => {
3        $(
4            #[doc = doc::consts::value_desc!($num)]
5            pub const $name: Self = Self::from_digit($num);
6        )*
7    }
8}
9
10use crate::digit;
11use crate::doc;
12use crate::ExpType;
13
14macro_rules! consts {
15    ($BUint: ident, $BInt: ident, $Digit: ident) => {
16        #[doc = doc::consts::impl_desc!()]
17        impl<const N: usize> $BUint<N> {
18            #[doc = doc::consts::min!(U 512)]
19            pub const MIN: Self = Self::from_digits([$Digit::MIN; N]);
20
21            #[doc = doc::consts::max!(U 512)]
22            pub const MAX: Self = Self::from_digits([$Digit::MAX; N]);
23
24            #[doc = doc::consts::bits!(U 512, 512)]
25            pub const BITS: ExpType = digit::$Digit::BITS * N as ExpType;
26
27            #[doc = doc::consts::bytes!(U 512, 512)]
28            pub const BYTES: ExpType = Self::BITS / 8;
29
30            #[doc = doc::consts::zero!(U 512)]
31            pub const ZERO: Self = Self::MIN;
32
33            pos_const!(ONE 1, TWO 2, THREE 3, FOUR 4, FIVE 5, SIX 6, SEVEN 7, EIGHT 8, NINE 9, TEN 10);
34        }
35    };
36}
37
38crate::macro_impl!(consts);