Coverage Report

Created: 2026-07-13 08:11

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/rust/registry/src/index.crates.io-1949cf8c6b5b557f/bnum-0.12.1/src/bint/cast.rs
Line
Count
Source
1
macro_rules! bint_as {
2
    ($BInt: ident, $Digit: ident; $($int: ty), *) => {
3
        $(
4
            impl<const N: usize> CastFrom<$BInt<N>> for $int {
5
                #[inline]
6
0
                fn cast_from(from: $BInt<N>) -> Self {
7
0
                    if from.is_negative() {
8
0
                        let digits = from.bits.digits;
9
0
                        let mut out = !0;
10
0
                        let mut i = 0;
11
0
                        while i << digit::$Digit::BIT_SHIFT < <$int>::BITS as usize && i < N {
12
0
                            out &= !((!digits[i]) as $int << (i << digit::$Digit::BIT_SHIFT));
13
0
                            i += 1;
14
0
                        }
15
0
                        out
16
                    } else {
17
0
                        <$int>::cast_from(from.bits)
18
                    }
19
0
                }
Unexecuted instantiation: <u8 as bnum::cast::CastFrom<bnum::bint::BIntD16<_>>>::cast_from
Unexecuted instantiation: <u16 as bnum::cast::CastFrom<bnum::bint::BIntD16<_>>>::cast_from
Unexecuted instantiation: <u32 as bnum::cast::CastFrom<bnum::bint::BIntD16<_>>>::cast_from
Unexecuted instantiation: <u64 as bnum::cast::CastFrom<bnum::bint::BIntD16<_>>>::cast_from
Unexecuted instantiation: <u8 as bnum::cast::CastFrom<bnum::bint::BIntD8<_>>>::cast_from
Unexecuted instantiation: <u16 as bnum::cast::CastFrom<bnum::bint::BIntD8<_>>>::cast_from
Unexecuted instantiation: <u32 as bnum::cast::CastFrom<bnum::bint::BIntD8<_>>>::cast_from
Unexecuted instantiation: <u64 as bnum::cast::CastFrom<bnum::bint::BIntD8<_>>>::cast_from
Unexecuted instantiation: <u128 as bnum::cast::CastFrom<bnum::bint::BIntD8<_>>>::cast_from
Unexecuted instantiation: <usize as bnum::cast::CastFrom<bnum::bint::BIntD8<_>>>::cast_from
Unexecuted instantiation: <i8 as bnum::cast::CastFrom<bnum::bint::BIntD8<_>>>::cast_from
Unexecuted instantiation: <i16 as bnum::cast::CastFrom<bnum::bint::BIntD8<_>>>::cast_from
Unexecuted instantiation: <i32 as bnum::cast::CastFrom<bnum::bint::BIntD8<_>>>::cast_from
Unexecuted instantiation: <i64 as bnum::cast::CastFrom<bnum::bint::BIntD8<_>>>::cast_from
Unexecuted instantiation: <i128 as bnum::cast::CastFrom<bnum::bint::BIntD8<_>>>::cast_from
Unexecuted instantiation: <isize as bnum::cast::CastFrom<bnum::bint::BIntD8<_>>>::cast_from
Unexecuted instantiation: <u128 as bnum::cast::CastFrom<bnum::bint::BIntD16<_>>>::cast_from
Unexecuted instantiation: <usize as bnum::cast::CastFrom<bnum::bint::BIntD16<_>>>::cast_from
Unexecuted instantiation: <i8 as bnum::cast::CastFrom<bnum::bint::BIntD16<_>>>::cast_from
Unexecuted instantiation: <i16 as bnum::cast::CastFrom<bnum::bint::BIntD16<_>>>::cast_from
Unexecuted instantiation: <i32 as bnum::cast::CastFrom<bnum::bint::BIntD16<_>>>::cast_from
Unexecuted instantiation: <i64 as bnum::cast::CastFrom<bnum::bint::BIntD16<_>>>::cast_from
Unexecuted instantiation: <i128 as bnum::cast::CastFrom<bnum::bint::BIntD16<_>>>::cast_from
Unexecuted instantiation: <isize as bnum::cast::CastFrom<bnum::bint::BIntD16<_>>>::cast_from
Unexecuted instantiation: <u8 as bnum::cast::CastFrom<bnum::bint::BInt<_>>>::cast_from
Unexecuted instantiation: <u16 as bnum::cast::CastFrom<bnum::bint::BInt<_>>>::cast_from
Unexecuted instantiation: <u32 as bnum::cast::CastFrom<bnum::bint::BInt<_>>>::cast_from
Unexecuted instantiation: <u64 as bnum::cast::CastFrom<bnum::bint::BInt<_>>>::cast_from
Unexecuted instantiation: <u128 as bnum::cast::CastFrom<bnum::bint::BInt<_>>>::cast_from
Unexecuted instantiation: <usize as bnum::cast::CastFrom<bnum::bint::BInt<_>>>::cast_from
Unexecuted instantiation: <u8 as bnum::cast::CastFrom<bnum::bint::BIntD32<_>>>::cast_from
Unexecuted instantiation: <u16 as bnum::cast::CastFrom<bnum::bint::BIntD32<_>>>::cast_from
Unexecuted instantiation: <u32 as bnum::cast::CastFrom<bnum::bint::BIntD32<_>>>::cast_from
Unexecuted instantiation: <u64 as bnum::cast::CastFrom<bnum::bint::BIntD32<_>>>::cast_from
Unexecuted instantiation: <u128 as bnum::cast::CastFrom<bnum::bint::BIntD32<_>>>::cast_from
Unexecuted instantiation: <usize as bnum::cast::CastFrom<bnum::bint::BIntD32<_>>>::cast_from
Unexecuted instantiation: <i8 as bnum::cast::CastFrom<bnum::bint::BIntD32<_>>>::cast_from
Unexecuted instantiation: <i16 as bnum::cast::CastFrom<bnum::bint::BIntD32<_>>>::cast_from
Unexecuted instantiation: <i32 as bnum::cast::CastFrom<bnum::bint::BIntD32<_>>>::cast_from
Unexecuted instantiation: <i64 as bnum::cast::CastFrom<bnum::bint::BIntD32<_>>>::cast_from
Unexecuted instantiation: <i128 as bnum::cast::CastFrom<bnum::bint::BIntD32<_>>>::cast_from
Unexecuted instantiation: <isize as bnum::cast::CastFrom<bnum::bint::BIntD32<_>>>::cast_from
Unexecuted instantiation: <i8 as bnum::cast::CastFrom<bnum::bint::BInt<_>>>::cast_from
Unexecuted instantiation: <i16 as bnum::cast::CastFrom<bnum::bint::BInt<_>>>::cast_from
Unexecuted instantiation: <i32 as bnum::cast::CastFrom<bnum::bint::BInt<_>>>::cast_from
Unexecuted instantiation: <i64 as bnum::cast::CastFrom<bnum::bint::BInt<_>>>::cast_from
Unexecuted instantiation: <i128 as bnum::cast::CastFrom<bnum::bint::BInt<_>>>::cast_from
Unexecuted instantiation: <isize as bnum::cast::CastFrom<bnum::bint::BInt<_>>>::cast_from
20
            }
21
        )*
22
    };
23
}
24
25
macro_rules! as_bint {
26
    ($BInt: ident, $BUint: ident; $($ty: ty), *) => {
27
        $(
28
            impl<const N: usize> CastFrom<$ty> for $BInt<N> {
29
                #[inline]
30
0
                fn cast_from(from: $ty) -> Self {
31
0
                    Self::from_bits($BUint::cast_from(from))
32
0
                }
Unexecuted instantiation: <bnum::bint::BIntD8<_> as bnum::cast::CastFrom<u8>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD8<_> as bnum::cast::CastFrom<u16>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD8<_> as bnum::cast::CastFrom<u32>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD8<_> as bnum::cast::CastFrom<u64>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD8<_> as bnum::cast::CastFrom<u128>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD8<_> as bnum::cast::CastFrom<usize>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD8<_> as bnum::cast::CastFrom<i8>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD8<_> as bnum::cast::CastFrom<i16>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD8<_> as bnum::cast::CastFrom<i32>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD8<_> as bnum::cast::CastFrom<i64>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD8<_> as bnum::cast::CastFrom<i128>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD8<_> as bnum::cast::CastFrom<isize>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD16<_> as bnum::cast::CastFrom<u8>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD16<_> as bnum::cast::CastFrom<u16>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD16<_> as bnum::cast::CastFrom<u32>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD16<_> as bnum::cast::CastFrom<u64>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD16<_> as bnum::cast::CastFrom<u128>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD16<_> as bnum::cast::CastFrom<usize>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD16<_> as bnum::cast::CastFrom<i8>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD16<_> as bnum::cast::CastFrom<i16>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD16<_> as bnum::cast::CastFrom<i32>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD16<_> as bnum::cast::CastFrom<i64>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD16<_> as bnum::cast::CastFrom<i128>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD16<_> as bnum::cast::CastFrom<isize>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD16<_> as bnum::cast::CastFrom<bool>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD16<_> as bnum::cast::CastFrom<char>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD8<_> as bnum::cast::CastFrom<bool>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD8<_> as bnum::cast::CastFrom<char>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD32<_> as bnum::cast::CastFrom<u8>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD32<_> as bnum::cast::CastFrom<u16>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD32<_> as bnum::cast::CastFrom<u32>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD32<_> as bnum::cast::CastFrom<u64>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD32<_> as bnum::cast::CastFrom<u128>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD32<_> as bnum::cast::CastFrom<usize>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD32<_> as bnum::cast::CastFrom<i8>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD32<_> as bnum::cast::CastFrom<i16>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD32<_> as bnum::cast::CastFrom<i32>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD32<_> as bnum::cast::CastFrom<i64>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD32<_> as bnum::cast::CastFrom<i128>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD32<_> as bnum::cast::CastFrom<isize>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD32<_> as bnum::cast::CastFrom<bool>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD32<_> as bnum::cast::CastFrom<char>>::cast_from
Unexecuted instantiation: <bnum::bint::BInt<_> as bnum::cast::CastFrom<u8>>::cast_from
Unexecuted instantiation: <bnum::bint::BInt<_> as bnum::cast::CastFrom<u16>>::cast_from
Unexecuted instantiation: <bnum::bint::BInt<_> as bnum::cast::CastFrom<u32>>::cast_from
Unexecuted instantiation: <bnum::bint::BInt<_> as bnum::cast::CastFrom<u64>>::cast_from
Unexecuted instantiation: <bnum::bint::BInt<_> as bnum::cast::CastFrom<u128>>::cast_from
Unexecuted instantiation: <bnum::bint::BInt<_> as bnum::cast::CastFrom<usize>>::cast_from
Unexecuted instantiation: <bnum::bint::BInt<_> as bnum::cast::CastFrom<i8>>::cast_from
Unexecuted instantiation: <bnum::bint::BInt<_> as bnum::cast::CastFrom<i16>>::cast_from
Unexecuted instantiation: <bnum::bint::BInt<_> as bnum::cast::CastFrom<i32>>::cast_from
Unexecuted instantiation: <bnum::bint::BInt<_> as bnum::cast::CastFrom<i64>>::cast_from
Unexecuted instantiation: <bnum::bint::BInt<_> as bnum::cast::CastFrom<i128>>::cast_from
Unexecuted instantiation: <bnum::bint::BInt<_> as bnum::cast::CastFrom<isize>>::cast_from
Unexecuted instantiation: <bnum::bint::BInt<_> as bnum::cast::CastFrom<bool>>::cast_from
Unexecuted instantiation: <bnum::bint::BInt<_> as bnum::cast::CastFrom<char>>::cast_from
33
            }
34
        )*
35
    }
36
}
37
38
macro_rules! bint_cast_from_float {
39
    ($f: ty, $BUint: ident <$N: ident>) => {
40
        #[inline]
41
0
        fn cast_from(from: $f) -> Self {
42
0
            if from.is_sign_negative() {
43
0
                let u = $BUint::<$N>::cast_from(-from);
44
0
                if u >= Self::MIN.to_bits() {
45
0
                    Self::MIN
46
                } else {
47
0
                    -Self::from_bits(u)
48
                }
49
            } else {
50
0
                let u = $BUint::<$N>::cast_from(from);
51
0
                let i = Self::from_bits(u);
52
0
                if i.is_negative() {
53
0
                    Self::MAX
54
                } else {
55
0
                    i
56
                }
57
            }
58
0
        }
Unexecuted instantiation: <bnum::bint::BIntD16<_> as bnum::cast::CastFrom<f32>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD16<_> as bnum::cast::CastFrom<f64>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD8<_> as bnum::cast::CastFrom<f32>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD8<_> as bnum::cast::CastFrom<f64>>::cast_from
Unexecuted instantiation: <bnum::bint::BInt<_> as bnum::cast::CastFrom<f32>>::cast_from
Unexecuted instantiation: <bnum::bint::BInt<_> as bnum::cast::CastFrom<f64>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD32<_> as bnum::cast::CastFrom<f32>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD32<_> as bnum::cast::CastFrom<f64>>::cast_from
59
    };
60
}
61
62
pub(crate) use bint_cast_from_float;
63
64
use crate::cast::CastFrom;
65
use crate::digit;
66
67
macro_rules! cast {
68
    ($BUint: ident, $BInt: ident, $Digit: ident) => {
69
        bint_as!($BInt, $Digit; u8, u16, u32, u64, u128, usize, i8, i16, i32, i64, i128, isize);
70
71
        impl<const N: usize> CastFrom<$BInt<N>> for f32 {
72
            #[inline]
73
0
            fn cast_from(from: $BInt<N>) -> Self {
74
0
                let f = f32::cast_from(from.unsigned_abs());
75
0
                if from.is_negative() {
76
0
                    -f
77
                } else {
78
0
                    f
79
                }
80
0
            }
Unexecuted instantiation: <f32 as bnum::cast::CastFrom<bnum::bint::BInt<_>>>::cast_from
Unexecuted instantiation: <f32 as bnum::cast::CastFrom<bnum::bint::BIntD16<_>>>::cast_from
Unexecuted instantiation: <f32 as bnum::cast::CastFrom<bnum::bint::BIntD8<_>>>::cast_from
Unexecuted instantiation: <f32 as bnum::cast::CastFrom<bnum::bint::BIntD32<_>>>::cast_from
81
        }
82
83
        impl<const N: usize> CastFrom<$BInt<N>> for f64 {
84
            #[inline]
85
0
            fn cast_from(from: $BInt<N>) -> Self {
86
0
                let f = f64::cast_from(from.unsigned_abs());
87
0
                if from.is_negative() {
88
0
                    -f
89
                } else {
90
0
                    f
91
                }
92
0
            }
Unexecuted instantiation: <f64 as bnum::cast::CastFrom<bnum::bint::BIntD16<_>>>::cast_from
Unexecuted instantiation: <f64 as bnum::cast::CastFrom<bnum::bint::BIntD8<_>>>::cast_from
Unexecuted instantiation: <f64 as bnum::cast::CastFrom<bnum::bint::BInt<_>>>::cast_from
Unexecuted instantiation: <f64 as bnum::cast::CastFrom<bnum::bint::BIntD32<_>>>::cast_from
93
        }
94
95
        as_bint!($BInt, $BUint; u8, u16, u32, u64, u128, usize, i8, i16, i32, i64, i128, isize, bool, char);
96
97
        impl<const N: usize, const M: usize> CastFrom<$BUint<M>> for $BInt<N> {
98
            #[inline]
99
0
            fn cast_from(from: $BUint<M>) -> Self {
100
0
                Self::from_bits($BUint::cast_from(from))
101
0
            }
Unexecuted instantiation: <bnum::bint::BInt<_> as bnum::cast::CastFrom<bnum::buint::BUint<_>>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD16<_> as bnum::cast::CastFrom<bnum::buint::BUintD16<_>>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD8<_> as bnum::cast::CastFrom<bnum::buint::BUintD8<_>>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD32<_> as bnum::cast::CastFrom<bnum::buint::BUintD32<_>>>::cast_from
102
        }
103
104
        impl<const N: usize, const M: usize> CastFrom<$BInt<M>> for $BInt<N> {
105
            #[inline]
106
0
            fn cast_from(from: $BInt<M>) -> Self {
107
0
                Self::from_bits($BUint::cast_from(from))
108
0
            }
Unexecuted instantiation: <bnum::bint::BIntD16<_> as bnum::cast::CastFrom<bnum::bint::BIntD16<_>>>::cast_from
Unexecuted instantiation: <bnum::bint::BInt<_> as bnum::cast::CastFrom<bnum::bint::BInt<_>>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD8<_> as bnum::cast::CastFrom<bnum::bint::BIntD8<_>>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD32<_> as bnum::cast::CastFrom<bnum::bint::BIntD32<_>>>::cast_from
109
        }
110
111
        impl<const N: usize> CastFrom<f32> for $BInt<N> {
112
            crate::bint::cast::bint_cast_from_float!(f32, $BUint<N>);
113
        }
114
115
        impl<const N: usize> CastFrom<f64> for $BInt<N> {
116
            crate::bint::cast::bint_cast_from_float!(f64, $BUint<N>);
117
        }
118
    };
119
}
120
121
#[cfg(test)]
122
crate::test::all_digit_tests! {
123
    use crate::test::types::itest;
124
125
    crate::int::cast::tests!(itest);
126
}
127
128
crate::macro_impl!(cast);
129
130
macro_rules! bint_as_different_digit_bigint {
131
    ($BUint: ident, $BInt: ident, $Digit: ident; $(($OtherBInt: ident, $OtherDigit: ident)), *) => {
132
        $(
133
            impl<const N: usize, const M: usize> crate::cast::CastFrom<$OtherBInt<M>> for $BUint<N> {
134
                #[must_use = doc::must_use_op!()]
135
                #[inline]
136
0
                fn cast_from(from: $OtherBInt<M>) -> Self {
137
0
                    if !from.is_negative() || M * $OtherDigit::BITS as usize >= N * $Digit::BITS as usize { // $OtherBInt::BITS <= $Int::BITS
138
0
                        Self::cast_from(from.to_bits())
139
                    } else {
140
0
                        let mut out = Self::MAX;
141
0
                        if $Digit::BITS < $OtherDigit::BITS {
142
                            const DIVIDE_COUNT: usize = ($OtherDigit::BITS / $Digit::BITS) as usize;
143
0
                            let stop_index: usize = if <$OtherBInt<M>>::BITS > <$BUint<N>>::BITS {
144
0
                                N
145
                            } else {
146
0
                                M * DIVIDE_COUNT
147
                            };
148
0
                            let mut i = 0;
149
0
                            while i < stop_index {
150
0
                                let wider_digit = from.bits.digits[i / DIVIDE_COUNT];
151
0
                                let mini_shift = i % DIVIDE_COUNT;
152
0
                                let digit = (wider_digit >> (mini_shift << digit::$Digit::BIT_SHIFT)) as $Digit;
153
0
                                out.digits[i] = digit;
154
0
                                i += 1;
155
0
                            }
156
                        } else {
157
                            const DIVIDE_COUNT: usize = ($Digit::BITS / $OtherDigit::BITS) as usize;
158
0
                            let stop_index: usize = if <$OtherBInt<M>>::BITS > <$BUint<N>>::BITS {
159
0
                                N * DIVIDE_COUNT
160
                            } else {
161
0
                                M
162
                            };
163
0
                            let mut current_digit: $Digit = $Digit::MAX;
164
0
                            let mut i = 0;
165
0
                            while i < stop_index {
166
0
                                let mini_shift = i % DIVIDE_COUNT;
167
0
                                current_digit &= !((!from.bits.digits[i] as $Digit) << (mini_shift << digit::$OtherDigit::BIT_SHIFT));
168
0
                                if mini_shift == DIVIDE_COUNT - 1 || i == stop_index - 1 {
169
0
                                    out.digits[i / DIVIDE_COUNT] = current_digit;
170
0
                                    current_digit = $Digit::MAX;
171
0
                                }
172
0
                                i += 1;
173
                            }
174
                        }
175
0
                        out
176
                    }
177
0
                }
Unexecuted instantiation: <bnum::buint::BUintD16<_> as bnum::cast::CastFrom<bnum::bint::BIntD32<_>>>::cast_from
Unexecuted instantiation: <bnum::buint::BUintD16<_> as bnum::cast::CastFrom<bnum::bint::BIntD8<_>>>::cast_from
Unexecuted instantiation: <bnum::buint::BUintD8<_> as bnum::cast::CastFrom<bnum::bint::BInt<_>>>::cast_from
Unexecuted instantiation: <bnum::buint::BUintD8<_> as bnum::cast::CastFrom<bnum::bint::BIntD32<_>>>::cast_from
Unexecuted instantiation: <bnum::buint::BUintD8<_> as bnum::cast::CastFrom<bnum::bint::BIntD16<_>>>::cast_from
Unexecuted instantiation: <bnum::buint::BUint<_> as bnum::cast::CastFrom<bnum::bint::BIntD32<_>>>::cast_from
Unexecuted instantiation: <bnum::buint::BUint<_> as bnum::cast::CastFrom<bnum::bint::BIntD16<_>>>::cast_from
Unexecuted instantiation: <bnum::buint::BUint<_> as bnum::cast::CastFrom<bnum::bint::BIntD8<_>>>::cast_from
Unexecuted instantiation: <bnum::buint::BUintD32<_> as bnum::cast::CastFrom<bnum::bint::BInt<_>>>::cast_from
Unexecuted instantiation: <bnum::buint::BUintD32<_> as bnum::cast::CastFrom<bnum::bint::BIntD16<_>>>::cast_from
Unexecuted instantiation: <bnum::buint::BUintD32<_> as bnum::cast::CastFrom<bnum::bint::BIntD8<_>>>::cast_from
Unexecuted instantiation: <bnum::buint::BUintD16<_> as bnum::cast::CastFrom<bnum::bint::BInt<_>>>::cast_from
178
            }
179
        
180
            impl<const N: usize, const M: usize> crate::cast::CastFrom<$OtherBInt<M>> for $BInt<N> {
181
                #[must_use = doc::must_use_op!()]
182
                #[inline]
183
0
                fn cast_from(from: $OtherBInt<M>) -> Self {
184
0
                    Self::from_bits($BUint::<N>::cast_from(from))
185
0
                }
Unexecuted instantiation: <bnum::bint::BIntD16<_> as bnum::cast::CastFrom<bnum::bint::BIntD32<_>>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD16<_> as bnum::cast::CastFrom<bnum::bint::BIntD8<_>>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD8<_> as bnum::cast::CastFrom<bnum::bint::BInt<_>>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD8<_> as bnum::cast::CastFrom<bnum::bint::BIntD32<_>>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD8<_> as bnum::cast::CastFrom<bnum::bint::BIntD16<_>>>::cast_from
Unexecuted instantiation: <bnum::bint::BInt<_> as bnum::cast::CastFrom<bnum::bint::BIntD32<_>>>::cast_from
Unexecuted instantiation: <bnum::bint::BInt<_> as bnum::cast::CastFrom<bnum::bint::BIntD16<_>>>::cast_from
Unexecuted instantiation: <bnum::bint::BInt<_> as bnum::cast::CastFrom<bnum::bint::BIntD8<_>>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD32<_> as bnum::cast::CastFrom<bnum::bint::BInt<_>>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD32<_> as bnum::cast::CastFrom<bnum::bint::BIntD16<_>>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD32<_> as bnum::cast::CastFrom<bnum::bint::BIntD8<_>>>::cast_from
Unexecuted instantiation: <bnum::bint::BIntD16<_> as bnum::cast::CastFrom<bnum::bint::BInt<_>>>::cast_from
186
            }
187
        )*
188
    };
189
}
190
191
pub(crate) use bint_as_different_digit_bigint;