Closed
Description
It is a side effect of #9250, which added those traits as a special case of the FromPrimitive
trait. This is rather strange, since the current ToBigInt
implementors do not fail at all ( ToBigUint
does fail, but only because they are implemented for signed integers as well).
Given that BigInt
and BigUint
already implements FromStr
(that would correspond to impl<'a> ToBigInt for &'a str
and so on), it would be better to make them implemented only for types that would definitely convertible to the big integers without an error. More precisely:
- Make
ToBigInt::to_bigint
andToBigUint::to_biguint
returnBigInt
andBigUint
respectively. - Remove implementations of
ToBigUint
for signed integers andBigInt
. - Add a new
into_biguint
(since it's more efficient, and does not confuse users ofToBigUint
) toBigInt
, which returnsOption<BigUint>
. We may also haveinto_bigint
toBigUint
, at expense of symmetry (it becomes asymmetric since it should not returnOption<BigInt>
).
Metadata
Metadata
Assignees
Labels
No labels