use crate::{core::entities::ip_address::IPAddress, memory::virtual_address::VirtualAddress};
#[derive(Debug, Clone)]
pub enum NetworkMask {
DottedDecimal(String),
PrefixLength(usize),
}
#[derive(Debug, Clone)]
pub struct IPAddressAndMask {
pub ip_address: IPAddress,
pub mask: NetworkMask,
}
pub struct NetworkInterface {
pub virtual_address: VirtualAddress,
pub name: Option<String>,
pub active_mac_address: Option<String>,
pub physical_mac_address: Option<String>,
pub additional_mac_addresses: Vec<String>,
pub ip_addresses: Vec<IPAddressAndMask>,
pub state: Option<String>,
}