Fix stability annotation and expand comment

This commit is contained in:
Orson Peters 2024-08-11 01:28:30 +02:00
parent ba62034430
commit a04a1e464f

View File

@ -74,10 +74,13 @@ pub struct Ipv4Addr {
octets: [u8; 4], octets: [u8; 4],
} }
#[stable(feature = "rust1", since = "1.0.0")]
impl Hash for Ipv4Addr { impl Hash for Ipv4Addr {
fn hash<H: Hasher>(&self, state: &mut H) { fn hash<H: Hasher>(&self, state: &mut H) {
// Hashers are often more efficient at hashing a fixed-width integer // Hashers are often more efficient at hashing a fixed-width integer
// than a bytestring, so convert before hashing. // than a bytestring, so convert before hashing. We don't use to_bits()
// here as that involves a byteswap on little-endian machines, which are
// more common than big-endian machines.
u32::from_le_bytes(self.octets).hash(state); u32::from_le_bytes(self.octets).hash(state);
} }
} }
@ -164,10 +167,13 @@ pub struct Ipv6Addr {
octets: [u8; 16], octets: [u8; 16],
} }
#[stable(feature = "rust1", since = "1.0.0")]
impl Hash for Ipv6Addr { impl Hash for Ipv6Addr {
fn hash<H: Hasher>(&self, state: &mut H) { fn hash<H: Hasher>(&self, state: &mut H) {
// Hashers are often more efficient at hashing a fixed-width integer // Hashers are often more efficient at hashing a fixed-width integer
// than a bytestring, so convert before hashing. // than a bytestring, so convert before hashing. We don't use to_bits()
// here as that involves byteswaps on little-endian machines, which are
// more common than big-endian machines.
u128::from_le_bytes(self.octets).hash(state); u128::from_le_bytes(self.octets).hash(state);
} }
} }