broker_tokio/net/
lookup_host.rs

1cfg_dns! {
2    use crate::net::addr::ToSocketAddrs;
3
4    use std::io;
5    use std::net::SocketAddr;
6
7    /// Performs a DNS resolution.
8    ///
9    /// The returned iterator may not actually yield any values depending on the
10    /// outcome of any resolution performed.
11    ///
12    /// This API is not intended to cover all DNS use cases. Anything beyond the
13    /// basic use case should be done with a specialized library.
14    ///
15    /// # Examples
16    ///
17    /// To resolve a DNS entry:
18    ///
19    /// ```no_run
20    /// use tokio::net;
21    /// use std::io;
22    ///
23    /// #[tokio::main]
24    /// async fn main() -> io::Result<()> {
25    ///     for addr in net::lookup_host("localhost:3000").await? {
26    ///         println!("socket address is {}", addr);
27    ///     }
28    ///
29    ///     Ok(())
30    /// }
31    /// ```
32    pub async fn lookup_host<T>(host: T) -> io::Result<impl Iterator<Item = SocketAddr>>
33    where
34        T: ToSocketAddrs
35    {
36        host.to_socket_addrs().await
37    }
38}