From 90fc790b64c0fb1d6237ce513ed456b4a5563a42 Mon Sep 17 00:00:00 2001 From: Hatter Jiang Date: Sun, 6 Sep 2020 18:49:40 +0800 Subject: [PATCH] feat: add display for ip address and ip address mask --- src/util_net.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/util_net.rs b/src/util_net.rs index 0f843da..aa002b4 100644 --- a/src/util_net.rs +++ b/src/util_net.rs @@ -1,3 +1,5 @@ +use std::fmt::{ Display, Formatter }; +use std::result::Result; use std::net::SocketAddr; use crate::XResult; @@ -24,6 +26,12 @@ impl IpAddress { } } +impl Display for IpAddress { + fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), std::fmt::Error> { + write!(f, "{}", self.to_address()) + } +} + #[derive(Debug, Clone)] pub enum IpAddressMask { Ipv4([u8; 4], u8), @@ -72,6 +80,12 @@ impl IpAddressMask { } } +impl Display for IpAddressMask { + fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), std::fmt::Error> { + write!(f, "{}", self.to_address()) + } +} + fn ipv4_mask(mask: u8) -> u32 { let mut r = 0_u32; for _ in 0..mask {