use crate::IpAddress;
#[derive(Debug, Clone, Default, PartialEq, Eq, Hash)]
#[non_exhaustive]
pub struct DnsConfig {
pub nameservers: Vec<IpAddress>,
pub search_domains: Vec<String>,
}
impl DnsConfig {
pub fn new() -> Self {
Self::default()
}
}
#[cfg(test)]
mod tests {
use super::*;
use net_lattice_ip::Ipv4Address;
#[test]
fn new_config_has_no_entries() {
let config = DnsConfig::new();
assert!(config.nameservers.is_empty());
assert!(config.search_domains.is_empty());
}
#[test]
fn config_carries_nameservers_and_search_domains() {
let config = DnsConfig {
nameservers: vec![IpAddress::V4(Ipv4Address::new(1, 1, 1, 1))],
search_domains: vec!["example.com".to_string()],
};
assert_eq!(config.nameservers.len(), 1);
assert_eq!(config.search_domains, vec!["example.com".to_string()]);
}
}