use Result;
/// Assigns and removes IP addresses on network interfaces.
///
/// Mutation is deliberately separate from [`crate::AddressProvider`]: listing
/// is normally unprivileged, while changing an address requires
/// `CAP_NET_ADMIN`, an elevated Windows token, or root on BSD/macOS. The
/// associated input and output types are distinct because an OS-observed
/// address has an ID and derived attributes that are not caller intent.