use atrium_identity::handle::DnsTxtResolver; use hickory_resolver::TokioAsyncResolver; /// Setup for dns resolver for the handle resolver pub struct HickoryDnsTxtResolver { resolver: hickory_resolver::TokioAsyncResolver, } impl Default for HickoryDnsTxtResolver { fn default() -> Self { Self { resolver: TokioAsyncResolver::tokio_from_system_conf() .expect("failed to create resolver"), } } } impl DnsTxtResolver for HickoryDnsTxtResolver { async fn resolve( &self, query: &str, ) -> core::result::Result, Box> { println!("Resolving TXT for: {}", query); Ok(self .resolver .txt_lookup(query) .await? .iter() .map(|txt| txt.to_string()) .collect()) } }