59
59
/// A resolver which will use the operating system's `getaddrinfo` function to resolve the provided
60
60
/// host to an IP address and map the results to a `SocketAddr`.
61
61
#[ derive( Clone , Debug ) ]
62
- pub struct GetAddressInfoResolver ;
62
+ struct GetAddressInfoResolver ;
63
63
64
64
impl DnsResolver for GetAddressInfoResolver {
65
65
type ResolveFuture = BoxFuture < ' static , io:: Result < Vec < SocketAddr > > > ;
@@ -73,36 +73,30 @@ impl DnsResolver for GetAddressInfoResolver {
73
73
}
74
74
75
75
#[ derive( Debug , Clone ) ]
76
- pub enum Resolver {
76
+ pub struct Resolver {
77
77
#[ cfg( not( feature = "trust-dns" ) ) ]
78
- GetAddressInfo ( GetAddressInfoResolver ) ,
78
+ inner : GetAddressInfoResolver ,
79
79
#[ cfg( feature = "trust-dns" ) ]
80
- TrustDns ( trust_dns_impl:: TrustDnsResolver ) ,
80
+ inner : trust_dns_impl:: TrustDnsResolver ,
81
81
}
82
82
83
83
impl Resolver {
84
+ #[ cfg( feature = "trust-dns" ) ]
84
85
pub async fn new ( ) -> Resolver {
85
- #[ cfg( feature = "trust-dns" ) ]
86
- {
87
- Resolver :: TrustDns ( trust_dns_impl:: TrustDnsResolver :: new ( ) . await )
88
- }
89
- #[ cfg( not( feature = "trust-dns" ) ) ]
90
- {
91
- Resolver :: GetAddressInfo ( GetAddressInfoResolver )
92
- }
86
+ Resolver { inner : trust_dns_impl:: TrustDnsResolver :: new ( ) . await }
87
+ }
88
+
89
+ #[ cfg( not( feature = "trust-dns" ) ) ]
90
+ pub async fn new ( ) -> Resolver {
91
+ Resolver { inner : GetAddressInfoResolver }
93
92
}
94
93
}
95
94
96
95
impl DnsResolver for Resolver {
97
96
type ResolveFuture = BoxFuture < ' static , io:: Result < Vec < SocketAddr > > > ;
98
97
99
98
fn resolve ( & self , host : String , port : u16 ) -> Self :: ResolveFuture {
100
- match self {
101
- #[ cfg( not( feature = "trust-dns" ) ) ]
102
- Resolver :: GetAddressInfo ( resolver) => resolver. resolve ( host, port) . boxed ( ) ,
103
- #[ cfg( feature = "trust-dns" ) ]
104
- Resolver :: TrustDns ( resolver) => resolver. resolve ( host, port) . boxed ( ) ,
105
- }
99
+ self . inner . resolve ( host, port) . boxed ( )
106
100
}
107
101
}
108
102
0 commit comments