1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
use libc;

/// Type alias to the Unix version of `in_addr`.
#[allow(non_camel_case_types)]
pub type in_addr = libc::in_addr;

/// Wrapper around `in_addr` on which `From` is implemented.
#[derive(Copy, Clone)]
pub struct InAddr(pub(crate) in_addr);

impl From<u32> for InAddr {
  fn from(value: u32) -> Self {
    InAddr(in_addr { s_addr: value })
  }
}

impl From<InAddr> for u32 {
  fn from(InAddr(addr): InAddr) -> u32 {
    addr.s_addr
  }
}