Trait ipnet::IpAdd
[−]
[src]
pub trait IpAdd<RHS = Self> { type Output; fn saturating_add(self, rhs: RHS) -> Self::Output; }
Provides a saturating_add()
method for Ipv4Addr
and Ipv6Addr
.
Panics
When attempting to add an IpAddr::V4
from an IpAddr::V6
and vice
versa.
Examples
use std::net::{Ipv4Addr, Ipv6Addr}; use std::str::FromStr; use ipnet::{IpAdd, Emu128}; let ip0 = Ipv4Addr::from_str("0.0.0.0").unwrap(); let ip1 = Ipv4Addr::from_str("0.0.0.1").unwrap(); let ip2 = Ipv4Addr::from_str("255.255.255.254").unwrap(); let ip3 = Ipv4Addr::from_str("255.255.255.255").unwrap(); assert_eq!(ip0.saturating_add(1u32), ip1); assert_eq!(ip2.saturating_add(1u32), ip3); assert_eq!(ip2.saturating_add(1u32), ip3); let ip60 = Ipv6Addr::from_str("fd00::").unwrap(); let ip61 = Ipv6Addr::from_str("fd00::1").unwrap(); let ip62 = Ipv6Addr::from_str("ffff:ffff:ffff:ffff:ffff:ffff:ffff:fffe").unwrap(); let ip63 = Ipv6Addr::from_str("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff").unwrap(); assert_eq!(ip60.saturating_add(1u32), ip61); assert_eq!(ip62.saturating_add(1u32), ip63); assert_eq!(ip62.saturating_add(1u32), ip63);