use cheetah_string::CheetahString;
#[derive(Debug, Clone, PartialEq, Eq, Default)]
pub struct NameserverAccessConfig {
namesrv_addr: CheetahString,
namesrv_domain: CheetahString,
namesrv_domain_subgroup: CheetahString,
}
impl NameserverAccessConfig {
pub fn new(
namesrv_addr: impl Into<CheetahString>,
namesrv_domain: impl Into<CheetahString>,
namesrv_domain_subgroup: impl Into<CheetahString>,
) -> Self {
Self {
namesrv_addr: namesrv_addr.into(),
namesrv_domain: namesrv_domain.into(),
namesrv_domain_subgroup: namesrv_domain_subgroup.into(),
}
}
#[inline]
pub fn namesrv_addr(&self) -> &CheetahString {
&self.namesrv_addr
}
#[inline]
pub fn namesrv_domain(&self) -> &CheetahString {
&self.namesrv_domain
}
#[inline]
pub fn namesrv_domain_subgroup(&self) -> &CheetahString {
&self.namesrv_domain_subgroup
}
#[inline]
pub fn has_namesrv_domain(&self) -> bool {
!self.namesrv_domain.is_empty()
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn nameserver_access_config_matches_java_fields() {
let config = NameserverAccessConfig::new("127.0.0.1:9876", "domain", "subgroup");
assert_eq!(config.namesrv_addr(), "127.0.0.1:9876");
assert_eq!(config.namesrv_domain(), "domain");
assert_eq!(config.namesrv_domain_subgroup(), "subgroup");
}
}