about summary refs log tree commit diff
path: root/library
diff options
context:
space:
mode:
authorltdk <usr@ltdk.xyz>2025-01-29 02:06:45 -0500
committerltdk <usr@ltdk.xyz>2025-03-08 08:19:22 -0500
commitffa86bf6eb762385c181a73952616bb14aebfb0f (patch)
treed58bd33ef35d6e2ab273f6ec405d93c69c183fb5 /library
parentcdd8af229960d05c8dfe5ca3e5f5e2066e676213 (diff)
downloadrust-ffa86bf6eb762385c181a73952616bb14aebfb0f.tar.gz
rust-ffa86bf6eb762385c181a73952616bb14aebfb0f.zip
Reword documentation about SocketAddr having varying layout
Diffstat (limited to 'library')
-rw-r--r--library/core/src/net/socket_addr.rs32
1 files changed, 21 insertions, 11 deletions
diff --git a/library/core/src/net/socket_addr.rs b/library/core/src/net/socket_addr.rs
index 57f47e66e81..21753d00924 100644
--- a/library/core/src/net/socket_addr.rs
+++ b/library/core/src/net/socket_addr.rs
@@ -8,11 +8,15 @@ use crate::net::{IpAddr, Ipv4Addr, Ipv6Addr};
 /// as possibly some version-dependent additional information. See [`SocketAddrV4`]'s and
 /// [`SocketAddrV6`]'s respective documentation for more details.
 ///
-/// The size of a `SocketAddr` instance may vary depending on the target operating
-/// system.
-///
 /// [IP address]: IpAddr
 ///
+/// # Portability
+///
+/// `SocketAddr` is intended to be a portable representation of socket addresses and is likely not
+/// the same as the internal socket address type used by the target operating system's API. Like all
+/// `repr(Rust)` structs, however, its exact layout remains undefined and should not be relied upon
+/// between builds.
+///
 /// # Examples
 ///
 /// ```
@@ -42,13 +46,16 @@ pub enum SocketAddr {
 ///
 /// See [`SocketAddr`] for a type encompassing both IPv4 and IPv6 socket addresses.
 ///
-/// The size of a `SocketAddrV4` struct may vary depending on the target operating
-/// system. Do not assume that this type has the same memory layout as the underlying
-/// system representation.
-///
 /// [IETF RFC 793]: https://tools.ietf.org/html/rfc793
 /// [`IPv4` address]: Ipv4Addr
 ///
+/// # Portability
+///
+/// `SocketAddrV4` is intended to be a portable representation of socket addresses and is likely not
+/// the same as the internal socket address type used by the target operating system's API. Like all
+/// `repr(Rust)` structs, however, its exact layout remains undefined and should not be relied upon
+/// between builds.
+///
 /// # Textual representation
 ///
 /// `SocketAddrV4` provides a [`FromStr`](crate::str::FromStr) implementation.
@@ -84,13 +91,16 @@ pub struct SocketAddrV4 {
 ///
 /// See [`SocketAddr`] for a type encompassing both IPv4 and IPv6 socket addresses.
 ///
-/// The size of a `SocketAddrV6` struct may vary depending on the target operating
-/// system. Do not assume that this type has the same memory layout as the underlying
-/// system representation.
-///
 /// [IETF RFC 2553, Section 3.3]: https://tools.ietf.org/html/rfc2553#section-3.3
 /// [`IPv6` address]: Ipv6Addr
 ///
+/// # Portability
+///
+/// `SocketAddrV6` is intended to be a portable representation of socket addresses and is likely not
+/// the same as the internal socket address type used by the target operating system's API. Like all
+/// `repr(Rust)` structs, however, its exact layout remains undefined and should not be relied upon
+/// between builds.
+///
 /// # Textual representation
 ///
 /// `SocketAddrV6` provides a [`FromStr`](crate::str::FromStr) implementation,