pub fn toPrimitive(self: Self, comptime T: type) OverflowError!T self: SelfT: typeOverflow122
123
124
125
126
127
128
129
130
131
132
133
134
135 pub fn toPrimitive(self: Self, comptime T: type) OverflowError!T {
var x: T = 0;
var i = self.limbs_len - 1;
while (true) : (i -= 1) {
if (@bitSizeOf(T) >= t_bits and math.shr(T, x, @bitSizeOf(T) - t_bits) != 0) {
return error.Overflow;
}
x = math.shl(T, x, t_bits);
const v = math.cast(T, self.limbsConst()[i]) orelse return error.Overflow;
x |= v;
if (i == 0) break;
}
return x;
}
Converts a big integer to a primitive type. This function may not run in constant time.