netdev/net/
device.rs

1#[cfg(feature = "serde")]
2use serde::{Deserialize, Serialize};
3
4use super::mac::MacAddr;
5use std::net::{Ipv4Addr, Ipv6Addr};
6
7/// Structure of NetworkDevice information
8#[derive(Clone, Eq, PartialEq, Hash, Debug)]
9#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
10pub struct NetworkDevice {
11    /// MAC address of the device
12    pub mac_addr: MacAddr,
13    /// List of IPv4 address of the device
14    pub ipv4: Vec<Ipv4Addr>,
15    /// List of IPv6 address of the device
16    pub ipv6: Vec<Ipv6Addr>,
17}
18
19impl NetworkDevice {
20    /// Construct a new NetworkDevice instance
21    pub fn new() -> NetworkDevice {
22        NetworkDevice {
23            mac_addr: MacAddr::zero(),
24            ipv4: Vec::new(),
25            ipv6: Vec::new(),
26        }
27    }
28}