- 
                Notifications
    You must be signed in to change notification settings 
- Fork 13.9k
Open
Labels
B-unstableBlocker: Implemented in the nightly compiler and unstable.Blocker: Implemented in the nightly compiler and unstable.C-tracking-issueCategory: An issue tracking the progress of sth. like the implementation of an RFCCategory: An issue tracking the progress of sth. like the implementation of an RFCLibs-SmallLibs issues that are considered "small" or self-containedLibs issues that are considered "small" or self-containedLibs-TrackedLibs issues that are tracked on the team's project board.Libs issues that are tracked on the team's project board.T-libs-apiRelevant to the library API team, which will review and decide on the PR/issue.Relevant to the library API team, which will review and decide on the PR/issue.
Description
u32 and other primitive integer types implement a number of bit-manipulation methods like rotate_left, but Wrapping<_> does not. At the moment this can be worked around with code like Wrapping(x.0.rotate_left(n)) instead of x.rotate_left(n).
It would be nice to implement:
-  count_ones
-  count_zeroes
-  leading_zeroes
-  trailing_zeroes
-  rotate_left
-  rotate_right
-  swap_bytes
-  from_be(?)
-  from_le(?)
-  to_be
-  to_le
-  pow(?)
Edit: Others added after #32463 (comment)
-  is_power_of_two(?)
-  next_power_of_two(?)
-  min_value(?)
-  max_value(?)
-  from_str_radix(?)
-  reverse_bits
-  absAdd missing Wrapping methods, use doc_comment! #49393Add missing Wrapping methods, use doc_comment! #50465
-  signumAdd missing Wrapping methods, use doc_comment! #49393Add missing Wrapping methods, use doc_comment! #50465
-  is_positiveAdd missing Wrapping methods, use doc_comment! #49393Add missing Wrapping methods, use doc_comment! #50465
-  is_negativeAdd missing Wrapping methods, use doc_comment! #49393Add missing Wrapping methods, use doc_comment! #50465
and maybe other methods, for:
- Wrapping<u8>
- Wrapping<u16>
- Wrapping<u32>
- Wrapping<u64>
- Wrapping<usize>
- Wrapping<i8>
- Wrapping<i16>
- Wrapping<i32>
- Wrapping<i64>
- Wrapping<isize>
Edit: From #50465
-  Decide on correct behavior for wrapping_next_power_of_two
stepancheg, stanislav-tkach, stevenlr, chuigda, honnza and 5 morebjoernager
Metadata
Metadata
Assignees
Labels
B-unstableBlocker: Implemented in the nightly compiler and unstable.Blocker: Implemented in the nightly compiler and unstable.C-tracking-issueCategory: An issue tracking the progress of sth. like the implementation of an RFCCategory: An issue tracking the progress of sth. like the implementation of an RFCLibs-SmallLibs issues that are considered "small" or self-containedLibs issues that are considered "small" or self-containedLibs-TrackedLibs issues that are tracked on the team's project board.Libs issues that are tracked on the team's project board.T-libs-apiRelevant to the library API team, which will review and decide on the PR/issue.Relevant to the library API team, which will review and decide on the PR/issue.