Open
Description
num-traits is somewhat of a de facto stable crate. Since these traits are often found in the public API of other crates, we really want to avoid the sort of ecosystem split that a breaking-change semver bump might cause.
Nevertheless, it's a good idea to track what breaking changes we might want to make someday, now found in the list below. Links are included to postponed issues, which often have more details. They will be closed in the meantime, but discussion can continue.
- Remove default
epsilon
implementation forFloat
Remove defaultepsilon
implementation forFloat
#4 Num::FromStrRadixErr
should have Trait bound Num::FromStrRadixErr should have Trait bound #6- More features for
Float
More features forFloat
#8 - All bit twiddling functions in
num::traits::PrimInt
should take or returnusize
instead ofu32
All bit twiddling functions in num::traits::PrimInt should take or return usize instead of u32 #14 std::num::Checked{Add,Sub,Mul,Div}
should have type parametersstd::num::Checked{Add,Sub,Mul,Div}
should have type parameters #15- Use
Mul
by reference inpow
UseMul
by reference inpow
#18 - Make the
Float
trait depend onFloatConst
. Make the Float trait depend on FloatConst. #20 - Add
Default
,Display
, andDebug
trait bounds to PrimInt Add Default, Display, and Debug trait bounds to PrimInt #44 - Easy conversions between
Signed
andUnsigned
Easy conversions betweenSigned
andUnsigned
#46 - Blanket
impl
forReal
trait prevents parameterized implementations. Blanketimpl
forReal
trait prevents parameterized implementations. #49 - Functions to distinguish signaling from non-signaling NaN's Functions to distinguish signaling from non-signaling NaN's #51
- Bound
FloatCore
byBounded
? Bound FloatCore by Bounded? #55 - Implement traits for
Reverse
(rust 1.19+) impl Bounded for Reverse #65 - Make
One::is_one
a required method and remove itsSelf: PartialEq
Add methodis_one
toOne
trait #5 (comment) LowerBounded
andUpperBounded
(Add LowerBounded/UpperBounded traits #210) should be super-traits ofBounded