Make it clear that to_ipv4 returns an IPv4 address for the IPv6 loopback

This commit is contained in:
Tobias Bucher 2022-05-02 23:20:51 +02:00
parent 24c8985043
commit ed95d502c6

View File

@ -138,6 +138,7 @@ pub struct Ipv4Addr {
///
/// To convert from an IPv4 address to an IPv4-mapped IPv6 address, use [`Ipv4Addr::to_ipv6_mapped`].
/// Use [`Ipv6Addr::to_ipv4`] to convert an IPv4-mapped IPv6 address to the canonical IPv4 address.
/// Note that this will also convert the IPv6 loopback address `::1` to `0.0.0.1`.
///
/// [IETF RFC 4291 Section 2.5.5.2]: https://datatracker.ietf.org/doc/html/rfc4291#section-2.5.5.2
///
@ -1673,7 +1674,9 @@ pub const fn to_ipv4_mapped(&self) -> Option<Ipv4Addr> {
/// or an [IPv4-mapped] address as defined in [IETF RFC 4291 section 2.5.5.2],
/// otherwise returns [`None`].
///
/// `::a.b.c.d` and `::ffff:a.b.c.d` become `a.b.c.d`
/// Note that this will return an [`IPv4` address] for the IPv6 loopback address `::1`.
///
/// `::a.b.c.d` and `::ffff:a.b.c.d` become `a.b.c.d`. `::1` becomes `0.0.0.1`.
/// All addresses *not* starting with either all zeroes or `::ffff` will return `None`.
///
/// [`IPv4` address]: Ipv4Addr