use core::net::Ipv6Addr;
use libnss_host4::Addr;
use libnss_host4::HostResolver;
use libnss_host4::err::NssErr;
use libnss_host4::impl_gethostbyname4_r;
struct ExampleResolver;
impl_gethostbyname4_r!(example, ExampleResolver);
impl HostResolver for ExampleResolver {
fn resolve_host(hostname: &str) -> Result<impl IntoIterator<Item = Addr>, NssErr> {
if hostname.eq_ignore_ascii_case("example") {
Ok([Addr {
ip: Ipv6Addr::LOCALHOST.into(),
scope_id: 0,
}])
} else {
Err(NssErr::NO_RESULT)
}
}
fn set_ttlp(hostname: &str) -> Option<i32> {
hostname.eq_ignore_ascii_case("example").then_some(0)
}
}