-
Notifications
You must be signed in to change notification settings - Fork 14k
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_bigintandToBigUint::to_biguintreturnBigIntandBigUintrespectively. - Remove implementations of
ToBigUintfor 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_biginttoBigUint, at expense of symmetry (it becomes asymmetric since it should not returnOption<BigInt>).
Metadata
Metadata
Assignees
Labels
No labels