bitcoin-network 0.1.19

Bitcoin Core–compatible network address handling for Rust: IPv4/IPv6/Tor/I2P/CJDNS classification, BIP155 ADDRv2 and legacy ADDRv1 serialization, reachability metrics, AS-based bucketing, and overlay address parsing.
// ---------------- [ File: bitcoin-network/src/ipv4_to_string.rs ]
crate::ix!();

/// Render an IPv4 address (`a[0]…a[3]`) as `d.d.d.d`.
#[inline]
pub fn ipv4_to_string(a: &[u8]) -> String {
    debug!(target: "netaddr", octets=?a, "Formatting IPv4 address");
    assert!(a.len() == ADDR_IPV4_SIZE, "ipv4_to_string expects 4 bytes");
    format!("{}.{}.{}.{}", a[0], a[1], a[2], a[3])
}

#[cfg(test)]
mod ipv4_fmt_tests {
    use super::*;

    #[traced_test]
    fn basic_formatting() {
        let ip = [192u8, 168, 0, 1];
        assert_eq!(ipv4_to_string(&ip), "192.168.0.1");
    }
}