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

@sorairolake

@rustbot

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 rustbot added S-waiting-on-review

Status: Awaiting review from the assignee but also interested parties.

T-libs

Relevant to the library team, which will review and decide on the PR/issue.

labels

Jun 11, 2025

tgross35

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.

tgross35

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

@tgross35

@sorairolake

@sorairolake

@tgross35

Thank you!

@bors r+ rollup

@bors

📌 Commit 199b808 has been approved by tgross35

It is now in the queue for this repository.

@bors 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

Jun 11, 2025

workingjubilee added a commit to workingjubilee/rustc that referenced this pull request

Jun 11, 2025

@workingjubilee

…, r=tgross35

feat: Add bit_width for unsigned integer types

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

Jun 11, 2025

@workingjubilee

…, r=tgross35

feat: Add bit_width for unsigned integer types

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

Jun 11, 2025

@bors

Rollup of 13 pull requests

Successful merges:

r? @ghost @rustbot modify labels: rollup

matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request

Jun 11, 2025

@matthiaskrgr

…, r=tgross35

feat: Add bit_width for unsigned integer types

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

Jun 11, 2025

@bors

Rollup of 9 pull requests

Successful merges:

Failed merges:

r? @ghost @rustbot modify labels: rollup

rust-timer added a commit that referenced this pull request

Jun 11, 2025

@rust-timer

Rollup merge of #142328 - sorairolake:feature/uint-bit-width, r=tgross35

feat: Add bit_width for unsigned integer types

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

Jun 12, 2025

@bors

matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request

Nov 19, 2025

@matthiaskrgr

…bit-width, r=scottmcm

feat: Add bit_width for unsigned NonZero<T>

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

Nov 19, 2025

@rust-timer

Rollup merge of #148797 - sorairolake:feature/non-zero-uint-bit-width, r=scottmcm

feat: Add bit_width for unsigned NonZero<T>

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

Nov 20, 2025

@matthiaskrgr

…, r=scottmcm

feat: Add bit_width for unsigned NonZero<T>

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

Nov 30, 2025

@matthiaskrgr

…bit-width, r=scottmcm

feat: Add bit_width for unsigned NonZero<T>

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

S-waiting-on-bors

Status: Waiting on bors to run and complete tests. Bors will change the label on completion.

T-libs

Relevant to the library team, which will review and decide on the PR/issue.