-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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 and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Elaborate on ip_addr bit conversion endianness #118505
Conversation
Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @cuviper (or someone else) soon. Please see the contribution instructions for more information. Namely, in order to ensure the minimum review times lag, PR authors and assigned reviewers should ensure that the review label (
|
library/core/src/net/ip_addr.rs
Outdated
/// Although IPv4 addresses are big-endian, the `u32` value will use the target platform's | ||
/// native byte order. That is, the `u32` value is an integer representation of the IPv4 | ||
/// address and not an integer interpretation of the IPv4 address's big-endian bitstring. This | ||
/// means that the `u32` value `&` with `0xffffff00` will set the last octet in the address to |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Using the &
operator as a verb seems confusing to me -- maybe we can leave that to the example and use "masked" here?
/// means that the `u32` value `&` with `0xffffff00` will set the last octet in the address to | |
/// means that the `u32` value masked with `0xffffff00` will set the last octet in the address to |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That sounds a lot better, thanks. Update pushed.
library/core/src/net/ip_addr.rs
Outdated
/// Although IPv6 addresses are big-endian, the `u128` value will use the target platform's | ||
/// native byte order. That is, the `u128` value is an integer representation of the IPv6 | ||
/// address and not an integer interpretation of the IPv6 address's big-endian bitstring. This | ||
/// means that the `u128` value `&` with `0xffffffffffffffffffffffffffff0000_u128` will set the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same confusion and suggestion as above.
/// means that the `u128` value `&` with `0xffffffffffffffffffffffffffff0000_u128` will set the | |
/// means that the `u128` value masked with `0xffffffffffffffffffffffffffff0000_u128` will set the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Update pushed.
Adds explanation of how endianness is handled when converting `Ipv4Addr` and `Ipv6Addr` to and from bits. Addresses rust-lang#113744
73382cb
to
c3bb1b5
Compare
The job Click to see the possible cause of the failure (guessed by this bot)
|
@rustbot review |
Looks good! @bors r+ rollup |
…iaskrgr Rollup of 8 pull requests Successful merges: - rust-lang#118505 (Elaborate on ip_addr bit conversion endianness) - rust-lang#118581 (OnceLock: Add note about drop and statics) - rust-lang#118677 ([rustdoc] Fix display of features) - rust-lang#118690 (coverage: Avoid unnecessary macros in unit tests) - rust-lang#118693 (Tell MirUsedCollector that the pointer alignment checks calls its panic symbol) - rust-lang#118695 (coverage: Merge refined spans in a separate final pass) - rust-lang#118709 (fix jobserver GLOBAL_CLIENT_CHECKED uninitialized before use) - rust-lang#118722 (rustdoc: remove unused parameter `reversed` from onEach(Lazy)) r? `@ghost` `@rustbot` modify labels: rollup
Rollup merge of rust-lang#118505 - CLEckhardt:update_ip_addr_bits_docs, r=cuviper Elaborate on ip_addr bit conversion endianness Adds explanation of how endianness is handled when converting `Ipv4Addr` and `Ipv6Addr` to and from bits. This is intended to unblock stabilization of the affected methods. Addresses rust-lang#113744
Adds explanation of how endianness is handled when converting
Ipv4Addr
andIpv6Addr
to and from bits. This is intended to unblock stabilization of the affected methods.Addresses #113744