c_ares_resolver/
host.rs

1use std::net::IpAddr;
2
3/// An owned version of `c_ares::HostResults`.
4#[derive(Clone, Eq, PartialEq, Debug, Hash, PartialOrd, Ord)]
5pub struct HostResults {
6    /// The hostname returned by the lookup.
7    pub hostname: String,
8
9    /// The IP addresses returned by the lookup.
10    pub addresses: Vec<IpAddr>,
11
12    /// The aliases returned by the lookup.
13    pub aliases: Vec<String>,
14}
15
16impl From<c_ares::HostResults<'_>> for HostResults {
17    fn from(results: c_ares::HostResults) -> Self {
18        Self {
19            hostname: results.hostname().to_owned(),
20            addresses: results.addresses().collect(),
21            aliases: results
22                .aliases()
23                .map(std::borrow::ToOwned::to_owned)
24                .collect(),
25        }
26    }
27}