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