Skip to content

WrappingAdd, WrappingSub, WrappingMul, WrappingDiv, etc #1530

Open
@SoniEx2

Description

@SoniEx2

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.)

Metadata

Metadata

Assignees

No one assigned

    Labels

    T-libs-apiRelevant to the library API team, which will review and decide on the RFC.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions