feat: Add bit_width for unsigned integer types by sorairolake · Pull Request #142328 · rust-lang/rust (original) (raw)
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Conversation10 Commits1 Checks9 Files changed
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
[ Show hidden characters]({{ revealButtonHref }})
r? @tgross35
rustbot has assigned @tgross35.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.
Use r? to explicitly pick a reviewer
rustbot added S-waiting-on-review
Status: Awaiting review from the assignee but also interested parties.
Relevant to the library team, which will review and decide on the PR/issue.
labels
Comment on lines 227 to 228
| #[doc = concat!("assert_eq!(0", stringify!($SelfT), ".bit_width(), 0);")] |
|---|
| #[doc = concat!("assert_eq!(7", stringify!($SelfT), ".bit_width(), 3);")] |
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could 7 instead be 0b111? to make the result obvious without mentally converting.
Also small nit, the other sections have a trailing underscore for literals (0b111_u8 rather than 0b111u8)
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It would probably also be good to have add an example like 0b1110 to illustrate that it's the width up to the most significant set bit (4 here) rather than the width of only set bits (3 here)
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How should the first 0 on line 227 be expressed?
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Leaving it as 0 or 0b0 is fine, up to you :) I just wanted the user to be able to count the bits themselves when we give a nonzero answer.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
r=me with passing CI and a squash
Thank you!
@bors r+ rollup
📌 Commit 199b808 has been approved by tgross35
It is now in the queue for this repository.
bors added S-waiting-on-bors
Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
and removed S-waiting-on-review
Status: Awaiting review from the assignee but also interested parties.
labels
workingjubilee added a commit to workingjubilee/rustc that referenced this pull request
…, r=tgross35
feat: Add bit_width for unsigned integer types
- Accepted ACP: rust-lang/libs-team#598
- Tracking issue: rust-lang#142326
This PR adds methods to the primitive unsigned integer types that return the minimum number of bits required to represent an unsigned integer.
workingjubilee added a commit to workingjubilee/rustc that referenced this pull request
…, r=tgross35
feat: Add bit_width for unsigned integer types
- Accepted ACP: rust-lang/libs-team#598
- Tracking issue: rust-lang#142326
This PR adds methods to the primitive unsigned integer types that return the minimum number of bits required to represent an unsigned integer.
bors added a commit that referenced this pull request
Rollup of 13 pull requests
Successful merges:
- #134841 (Look at proc-macro attributes when encountering unknown attribute)
- #141639 (Expose discriminant values in stable_mir)
- #141967 (Configure bootstrap backport nominations through triagebot)
- #142042 (Make E0621 missing lifetime suggestion verbose)
- #142176 (tests: Split dont-shuffle-bswaps along opt-levels and arches)
- #142248 (Add supported asm types for LoongArch32)
- #142272 (tests: Change ABIs in tests to more future-resilient ones)
- #142282 (Only run
citooltests on theautobranch) - #142297 (Implement
//@ needs-target-stdcompiletest directive) - #142298 (Make loongarch-none target maintainers more easily pingable)
- #142306 (Dont unwrap and re-wrap typing envs)
- #142324 (Remove unneeded
FunctionCxfrom some codegen methods) - #142328 (feat: Add
bit_widthfor unsigned integer types)
r? @ghost
@rustbot modify labels: rollup
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request
…, r=tgross35
feat: Add bit_width for unsigned integer types
- Accepted ACP: rust-lang/libs-team#598
- Tracking issue: rust-lang#142326
This PR adds methods to the primitive unsigned integer types that return the minimum number of bits required to represent an unsigned integer.
This was referenced
Jun 11, 2025
bors added a commit that referenced this pull request
Rollup of 9 pull requests
Successful merges:
- #141967 (Configure bootstrap backport nominations through triagebot)
- #142042 (Make E0621 missing lifetime suggestion verbose)
- #142272 (tests: Change ABIs in tests to more future-resilient ones)
- #142282 (Only run
citooltests on theautobranch) - #142297 (Implement
//@ needs-target-stdcompiletest directive) - #142298 (Make loongarch-none target maintainers more easily pingable)
- #142306 (Dont unwrap and re-wrap typing envs)
- #142324 (Remove unneeded
FunctionCxfrom some codegen methods) - #142328 (feat: Add
bit_widthfor unsigned integer types)
Failed merges:
- #141639 (Expose discriminant values in stable_mir)
r? @ghost
@rustbot modify labels: rollup
rust-timer added a commit that referenced this pull request
Rollup merge of #142328 - sorairolake:feature/uint-bit-width, r=tgross35
feat: Add bit_width for unsigned integer types
- Accepted ACP: rust-lang/libs-team#598
- Tracking issue: #142326
This PR adds methods to the primitive unsigned integer types that return the minimum number of bits required to represent an unsigned integer.
github-actions bot pushed a commit to rust-lang/rustc-dev-guide that referenced this pull request
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request
…bit-width, r=scottmcm
feat: Add bit_width for unsigned NonZero<T>
- Tracking issue: rust-lang#142326
This pull request adds a method to the unsigned NonZero<T> that return the minimum number of bits required to represent a value.
This can be achieved by using the get method and the methods added in rust-lang#142328, but I think adding the NonZero::bit_width method is useful because it accomplishes the same thing a little more succinctly.
rust-timer added a commit that referenced this pull request
Rollup merge of #148797 - sorairolake:feature/non-zero-uint-bit-width, r=scottmcm
feat: Add bit_width for unsigned NonZero<T>
- Tracking issue: #142326
This pull request adds a method to the unsigned NonZero<T> that return the minimum number of bits required to represent a value.
This can be achieved by using the get method and the methods added in #142328, but I think adding the NonZero::bit_width method is useful because it accomplishes the same thing a little more succinctly.
github-actions bot pushed a commit to rust-lang/miri that referenced this pull request
…, r=scottmcm
feat: Add bit_width for unsigned NonZero<T>
- Tracking issue: rust-lang/rust#142326
This pull request adds a method to the unsigned NonZero<T> that return the minimum number of bits required to represent a value.
This can be achieved by using the get method and the methods added in rust-lang/rust#142328, but I think adding the NonZero::bit_width method is useful because it accomplishes the same thing a little more succinctly.
github-actions bot pushed a commit to model-checking/verify-rust-std that referenced this pull request
…bit-width, r=scottmcm
feat: Add bit_width for unsigned NonZero<T>
- Tracking issue: rust-lang#142326
This pull request adds a method to the unsigned NonZero<T> that return the minimum number of bits required to represent a value.
This can be achieved by using the get method and the methods added in rust-lang#142328, but I think adding the NonZero::bit_width method is useful because it accomplishes the same thing a little more succinctly.
Labels
Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Relevant to the library team, which will review and decide on the PR/issue.