1#[cfg(feature = "serde")]
2use serde::{Deserialize, Serialize};
3
4use super::mac::MacAddr;
5use std::net::{Ipv4Addr, Ipv6Addr};
6
7#[derive(Clone, Eq, PartialEq, Hash, Debug)]
9#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
10pub struct NetworkDevice {
11 pub mac_addr: MacAddr,
13 pub ipv4: Vec<Ipv4Addr>,
15 pub ipv6: Vec<Ipv6Addr>,
17}
18
19impl NetworkDevice {
20 pub fn new() -> NetworkDevice {
22 NetworkDevice {
23 mac_addr: MacAddr::zero(),
24 ipv4: Vec::new(),
25 ipv6: Vec::new(),
26 }
27 }
28}