Open
Description
Currently we have i32::wrapping_add
, i32::wrapping_sub
, i32::wrapping_div
etc bound to i32
, that is, there is no trait for them. We also have Wrapping<T>
, and an impl for each number type. (source)
I want this to be changed, so that we instead have WrappingAdd
which defines wrapping_add(self, RHS) -> Self::Output
, WrappingSub
which defines wrapping_sub(self, RHS) -> Self::Output
and so on, and Wrapping<T>
which uses them. This would hopefully simplify the language, and it would also be possible to create Wrapping<T>
-compatible types. (You can't impl stuff for Wrapping currently.)
They would probably be placed in std::num
.
(Side note: If it goes into std::ops
we could also have wrapping ops in the form of |+|
, |-|
, etc.)