/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; |