Coverage Report

Created: 2026-03-23 07:13

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/rust/registry/src/index.crates.io-1949cf8c6b5b557f/fastnum-0.7.4/src/bint/num.rs
Line
Count
Source
1
macro_rules! num_impl {
2
    ($Ty: ident, $sign: ident) => {
3
        impl<const N: usize> $Ty<N> {
4
            #[doc = doc::num::count_ones!($sign 256)]
5
            #[must_use = doc::must_use_op!()]
6
            #[inline(always)]
7
0
            pub const fn count_ones(self) -> ExpType {
8
0
                self.0.count_ones()
9
0
            }
Unexecuted instantiation: <fastnum::bint::int::Int<_>>::count_ones
Unexecuted instantiation: <fastnum::bint::uint::UInt<_>>::count_ones
10
11
            #[doc = doc::num::count_zeros!($sign 256)]
12
            #[must_use = doc::must_use_op!()]
13
            #[inline(always)]
14
0
            pub const fn count_zeros(self) -> ExpType {
15
0
                self.0.count_zeros()
16
0
            }
Unexecuted instantiation: <fastnum::bint::int::Int<_>>::count_zeros
Unexecuted instantiation: <fastnum::bint::uint::UInt<_>>::count_zeros
17
18
            #[doc = doc::num::leading_zeros!($sign 256)]
19
            #[must_use = doc::must_use_op!()]
20
            #[inline(always)]
21
0
            pub const fn leading_zeros(self) -> ExpType {
22
0
                self.0.leading_zeros()
23
0
            }
Unexecuted instantiation: <fastnum::bint::uint::UInt<2>>::leading_zeros
Unexecuted instantiation: <fastnum::bint::uint::UInt<16>>::leading_zeros
Unexecuted instantiation: <fastnum::bint::uint::UInt<17>>::leading_zeros
Unexecuted instantiation: <fastnum::bint::uint::UInt<1>>::leading_zeros
Unexecuted instantiation: <fastnum::bint::uint::UInt<3>>::leading_zeros
Unexecuted instantiation: <fastnum::bint::uint::UInt<4>>::leading_zeros
Unexecuted instantiation: <fastnum::bint::uint::UInt<5>>::leading_zeros
Unexecuted instantiation: <fastnum::bint::uint::UInt<6>>::leading_zeros
Unexecuted instantiation: <fastnum::bint::uint::UInt<7>>::leading_zeros
Unexecuted instantiation: <fastnum::bint::uint::UInt<8>>::leading_zeros
Unexecuted instantiation: <fastnum::bint::uint::UInt<9>>::leading_zeros
Unexecuted instantiation: <fastnum::bint::uint::UInt<10>>::leading_zeros
Unexecuted instantiation: <fastnum::bint::uint::UInt<11>>::leading_zeros
Unexecuted instantiation: <fastnum::bint::uint::UInt<12>>::leading_zeros
Unexecuted instantiation: <fastnum::bint::uint::UInt<13>>::leading_zeros
Unexecuted instantiation: <fastnum::bint::uint::UInt<14>>::leading_zeros
Unexecuted instantiation: <fastnum::bint::uint::UInt<15>>::leading_zeros
Unexecuted instantiation: <fastnum::bint::int::Int<_>>::leading_zeros
Unexecuted instantiation: <fastnum::bint::uint::UInt<_>>::leading_zeros
24
25
            #[doc = doc::num::trailing_zeros!($sign 256)]
26
            #[must_use = doc::must_use_op!()]
27
            #[inline(always)]
28
0
            pub const fn trailing_zeros(self) -> ExpType {
29
0
                self.0.trailing_zeros()
30
0
            }
Unexecuted instantiation: <fastnum::bint::int::Int<_>>::trailing_zeros
Unexecuted instantiation: <fastnum::bint::uint::UInt<_>>::trailing_zeros
31
32
            #[doc = doc::num::leading_ones!($sign 256)]
33
            #[must_use = doc::must_use_op!()]
34
            #[inline(always)]
35
0
            pub const fn leading_ones(self) -> ExpType {
36
0
                self.0.leading_ones()
37
0
            }
Unexecuted instantiation: <fastnum::bint::int::Int<_>>::leading_ones
Unexecuted instantiation: <fastnum::bint::uint::UInt<_>>::leading_ones
38
39
            #[doc = doc::num::trailing_ones!($sign 256)]
40
            #[must_use = doc::must_use_op!()]
41
            #[inline(always)]
42
0
            pub const fn trailing_ones(self) -> ExpType {
43
0
                self.0.trailing_ones()
44
0
            }
Unexecuted instantiation: <fastnum::bint::int::Int<_>>::trailing_ones
Unexecuted instantiation: <fastnum::bint::uint::UInt<_>>::trailing_ones
45
46
            #[doc = doc::num::rotate_left!($sign 256)]
47
            #[must_use = doc::must_use_op!()]
48
            #[inline(always)]
49
0
            pub const fn rotate_left(self, n: ExpType) -> Self {
50
0
                Self(self.0.rotate_left(n))
51
0
            }
Unexecuted instantiation: <fastnum::bint::int::Int<_>>::rotate_left
Unexecuted instantiation: <fastnum::bint::uint::UInt<_>>::rotate_left
52
53
            #[doc = doc::num::rotate_right!($sign 256)]
54
            #[must_use = doc::must_use_op!()]
55
            #[inline(always)]
56
0
            pub const fn rotate_right(self, n: ExpType) -> Self {
57
0
                Self(self.0.rotate_right(n))
58
0
            }
Unexecuted instantiation: <fastnum::bint::int::Int<_>>::rotate_right
Unexecuted instantiation: <fastnum::bint::uint::UInt<_>>::rotate_right
59
60
            #[doc = doc::num::swap_bytes!($sign 256)]
61
            #[must_use = doc::must_use_op!()]
62
            #[inline(always)]
63
0
            pub const fn swap_bytes(self) -> Self {
64
0
                Self(self.0.swap_bytes())
65
0
            }
Unexecuted instantiation: <fastnum::bint::int::Int<_>>::swap_bytes
Unexecuted instantiation: <fastnum::bint::uint::UInt<_>>::swap_bytes
66
67
            #[doc = doc::num::reverse_bits!($sign 256)]
68
            #[must_use = doc::must_use_op!()]
69
            #[inline(always)]
70
0
            pub const fn reverse_bits(self) -> Self {
71
0
                Self(self.0.reverse_bits())
72
0
            }
Unexecuted instantiation: <fastnum::bint::int::Int<_>>::reverse_bits
Unexecuted instantiation: <fastnum::bint::uint::UInt<_>>::reverse_bits
73
74
            #[doc = doc::num::pow!($sign 256)]
75
            #[must_use = doc::must_use_op!()]
76
            #[inline(always)]
77
0
            pub const fn pow(self, exp: ExpType) -> Self {
78
0
                Self(self.0.pow(exp))
79
0
            }
Unexecuted instantiation: <fastnum::bint::int::Int<_>>::pow
Unexecuted instantiation: <fastnum::bint::uint::UInt<_>>::pow
80
81
            #[doc = doc::num::add!($sign 256)]
82
            #[must_use = doc::must_use_op!()]
83
            #[inline(always)]
84
0
            pub const fn add(self, rhs: Self) -> Self {
85
0
                Self(self.0.add(rhs.0))
86
0
            }
Unexecuted instantiation: <fastnum::bint::uint::UInt<2>>::add
Unexecuted instantiation: <fastnum::bint::int::Int<_>>::add
Unexecuted instantiation: <fastnum::bint::uint::UInt<_>>::add
87
88
            #[doc = doc::num::shl!($sign 256)]
89
            #[must_use = doc::must_use_op!()]
90
            #[inline(always)]
91
0
            pub const fn shl(self, rhs: ExpType) -> Self {
92
0
                Self(self.0.shl(rhs))
93
0
            }
Unexecuted instantiation: <fastnum::bint::uint::UInt<2>>::shl
Unexecuted instantiation: <fastnum::bint::int::Int<_>>::shl
Unexecuted instantiation: <fastnum::bint::uint::UInt<_>>::shl
94
95
            #[doc = doc::num::shr!($sign 256)]
96
            #[must_use = doc::must_use_op!()]
97
            #[inline(always)]
98
0
            pub const fn shr(self, rhs: ExpType) -> Self {
99
0
                Self(self.0.shr(rhs))
100
0
            }
Unexecuted instantiation: <fastnum::bint::int::Int<_>>::shr
Unexecuted instantiation: <fastnum::bint::uint::UInt<_>>::shr
101
102
            #[doc = doc::num::sub!($sign 256)]
103
            #[must_use = doc::must_use_op!()]
104
            #[inline(always)]
105
0
            pub const fn sub(self, rhs: Self) -> Self {
106
0
                Self(self.0.sub(rhs.0))
107
0
            }
Unexecuted instantiation: <fastnum::bint::int::Int<_>>::sub
Unexecuted instantiation: <fastnum::bint::uint::UInt<_>>::sub
108
109
            #[doc = doc::num::rem!($sign 256)]
110
            #[must_use = doc::must_use_op!()]
111
            #[inline(always)]
112
0
            pub const fn rem(self, rhs: Self) -> Self {
113
0
                Self(self.0.rem(rhs.0))
114
0
            }
Unexecuted instantiation: <fastnum::bint::int::Int<_>>::rem
Unexecuted instantiation: <fastnum::bint::uint::UInt<_>>::rem
115
116
            #[doc = doc::num::div_euclid!($sign 256)]
117
            #[must_use = doc::must_use_op!()]
118
            #[inline(always)]
119
0
            pub const fn div_euclid(self, rhs: Self) -> Self {
120
0
                Self(self.0.div_euclid(rhs.0))
121
0
            }
Unexecuted instantiation: <fastnum::bint::int::Int<_>>::div_euclid
Unexecuted instantiation: <fastnum::bint::uint::UInt<_>>::div_euclid
122
123
            #[doc = doc::num::rem_euclid!($sign 256)]
124
            #[must_use = doc::must_use_op!()]
125
            #[inline(always)]
126
0
            pub const fn rem_euclid(self, rhs: Self) -> Self {
127
0
                Self(self.0.rem_euclid(rhs.0))
128
0
            }
Unexecuted instantiation: <fastnum::bint::int::Int<_>>::rem_euclid
Unexecuted instantiation: <fastnum::bint::uint::UInt<_>>::rem_euclid
129
130
            #[doc = doc::num::is_power_of_two!($sign 256)]
131
            #[must_use]
132
            #[inline(always)]
133
0
            pub const fn is_power_of_two(self) -> bool {
134
0
                self.0.is_power_of_two()
135
0
            }
Unexecuted instantiation: <fastnum::bint::int::Int<_>>::is_power_of_two
Unexecuted instantiation: <fastnum::bint::uint::UInt<_>>::is_power_of_two
136
137
            #[doc = doc::num::midpoint!($sign 256)]
138
            #[must_use = doc::must_use_op!()]
139
            #[inline(always)]
140
0
            pub const fn midpoint(self, rhs: Self) -> Self {
141
0
                Self(self.0.midpoint(rhs.0))
142
0
            }
Unexecuted instantiation: <fastnum::bint::int::Int<_>>::midpoint
Unexecuted instantiation: <fastnum::bint::uint::UInt<_>>::midpoint
143
144
            #[doc = doc::num::ilog2!($sign 256)]
145
            #[must_use = doc::must_use_op!()]
146
            #[inline(always)]
147
0
            pub const fn ilog2(self) -> ExpType {
148
0
                self.0.ilog2()
149
0
            }
Unexecuted instantiation: <fastnum::bint::uint::UInt<16>>::ilog2
Unexecuted instantiation: <fastnum::bint::uint::UInt<17>>::ilog2
Unexecuted instantiation: <fastnum::bint::uint::UInt<3>>::ilog2
Unexecuted instantiation: <fastnum::bint::uint::UInt<4>>::ilog2
Unexecuted instantiation: <fastnum::bint::uint::UInt<5>>::ilog2
Unexecuted instantiation: <fastnum::bint::uint::UInt<6>>::ilog2
Unexecuted instantiation: <fastnum::bint::uint::UInt<7>>::ilog2
Unexecuted instantiation: <fastnum::bint::uint::UInt<8>>::ilog2
Unexecuted instantiation: <fastnum::bint::uint::UInt<9>>::ilog2
Unexecuted instantiation: <fastnum::bint::uint::UInt<10>>::ilog2
Unexecuted instantiation: <fastnum::bint::uint::UInt<11>>::ilog2
Unexecuted instantiation: <fastnum::bint::uint::UInt<12>>::ilog2
Unexecuted instantiation: <fastnum::bint::uint::UInt<13>>::ilog2
Unexecuted instantiation: <fastnum::bint::uint::UInt<14>>::ilog2
Unexecuted instantiation: <fastnum::bint::uint::UInt<15>>::ilog2
Unexecuted instantiation: <fastnum::bint::int::Int<_>>::ilog2
Unexecuted instantiation: <fastnum::bint::uint::UInt<_>>::ilog2
150
151
            #[doc = doc::num::ilog!($sign 256)]
152
            #[must_use = doc::must_use_op!()]
153
            #[inline(always)]
154
0
            pub const fn ilog(self, base: Self) -> ExpType {
155
0
                self.0.ilog(base.0)
156
0
            }
Unexecuted instantiation: <fastnum::bint::int::Int<_>>::ilog
Unexecuted instantiation: <fastnum::bint::uint::UInt<_>>::ilog
157
158
            #[doc = doc::num::ilog10!($sign 256)]
159
            #[must_use = doc::must_use_op!()]
160
            #[inline(always)]
161
0
            pub const fn ilog10(self) -> u32 {
162
0
                self.checked_ilog10().expect(crate::utils::err_msg!(
163
                    "argument of integer logarithm must be positive"
164
                ))
165
0
            }
Unexecuted instantiation: <fastnum::bint::uint::UInt<16>>::ilog10
Unexecuted instantiation: <fastnum::bint::uint::UInt<17>>::ilog10
Unexecuted instantiation: <fastnum::bint::uint::UInt<3>>::ilog10
Unexecuted instantiation: <fastnum::bint::uint::UInt<4>>::ilog10
Unexecuted instantiation: <fastnum::bint::uint::UInt<5>>::ilog10
Unexecuted instantiation: <fastnum::bint::uint::UInt<6>>::ilog10
Unexecuted instantiation: <fastnum::bint::uint::UInt<7>>::ilog10
Unexecuted instantiation: <fastnum::bint::uint::UInt<8>>::ilog10
Unexecuted instantiation: <fastnum::bint::uint::UInt<9>>::ilog10
Unexecuted instantiation: <fastnum::bint::uint::UInt<10>>::ilog10
Unexecuted instantiation: <fastnum::bint::uint::UInt<11>>::ilog10
Unexecuted instantiation: <fastnum::bint::uint::UInt<12>>::ilog10
Unexecuted instantiation: <fastnum::bint::uint::UInt<13>>::ilog10
Unexecuted instantiation: <fastnum::bint::uint::UInt<14>>::ilog10
Unexecuted instantiation: <fastnum::bint::uint::UInt<15>>::ilog10
Unexecuted instantiation: <fastnum::bint::uint::UInt<1>>::ilog10
Unexecuted instantiation: <fastnum::bint::uint::UInt<2>>::ilog10
Unexecuted instantiation: <fastnum::bint::int::Int<_>>::ilog10
Unexecuted instantiation: <fastnum::bint::uint::UInt<_>>::ilog10
166
167
            #[doc = doc::num::next_multiple_of!($sign 256)]
168
            #[must_use = doc::must_use_op!()]
169
            #[inline(always)]
170
0
            pub const fn next_multiple_of(self, rhs: Self) -> Self {
171
0
                Self(self.0.next_multiple_of(rhs.0))
172
0
            }
Unexecuted instantiation: <fastnum::bint::int::Int<_>>::next_multiple_of
Unexecuted instantiation: <fastnum::bint::uint::UInt<_>>::next_multiple_of
173
174
            #[doc = doc::num::div_floor!($sign 256)]
175
            #[must_use = doc::must_use_op!()]
176
            #[inline(always)]
177
0
            pub const fn div_floor(self, rhs: Self) -> Self {
178
0
                Self(self.0.div_floor(rhs.0))
179
0
            }
Unexecuted instantiation: <fastnum::bint::int::Int<_>>::div_floor
Unexecuted instantiation: <fastnum::bint::uint::UInt<_>>::div_floor
180
181
            #[doc = doc::num::div_ceil!($sign 256)]
182
            #[must_use = doc::must_use_op!()]
183
            #[inline(always)]
184
0
            pub const fn div_ceil(self, rhs: Self) -> Self {
185
0
                Self(self.0.div_ceil(rhs.0))
186
0
            }
Unexecuted instantiation: <fastnum::bint::int::Int<_>>::div_ceil
Unexecuted instantiation: <fastnum::bint::uint::UInt<_>>::div_ceil
187
188
            #[doc = doc::num::bits!($sign 256)]
189
            #[must_use]
190
            #[inline(always)]
191
0
            pub const fn bits(&self) -> ExpType {
192
0
                self.0.bits()
193
0
            }
Unexecuted instantiation: <fastnum::bint::uint::UInt<1>>::bits
Unexecuted instantiation: <fastnum::bint::uint::UInt<2>>::bits
Unexecuted instantiation: <fastnum::bint::int::Int<_>>::bits
Unexecuted instantiation: <fastnum::bint::uint::UInt<_>>::bits
194
195
            #[doc = doc::num::bit!($sign 256)]
196
            #[must_use]
197
            #[inline(always)]
198
0
            pub const fn bit(&self, b: ExpType) -> bool {
199
0
                self.0.bit(b)
200
0
            }
Unexecuted instantiation: <fastnum::bint::int::Int<_>>::bit
Unexecuted instantiation: <fastnum::bint::uint::UInt<_>>::bit
201
        }
202
    };
203
}
204
205
pub(crate) use num_impl;