| Crates.io | comprehensive_dns |
| lib.rs | comprehensive_dns |
| version | 0.2.0 |
| created_at | 2025-01-16 20:49:15.95057+00 |
| updated_at | 2025-05-26 11:12:07.646187+00 |
| description | A DNS resolver for https://crates.io/crates/comprehensive |
| homepage | https://github.com/vandry/comprehensive |
| repository | https://github.com/vandry/comprehensive.git |
| max_upload_size | |
| id | 1519915 |
| size | 53,019 |
A DNS resolver for [comprehensive]
This crate provides a DNS resolver for including in a
[comprehensive::Assembly]. Other [Resource]s that require DNS
resolution services can depend on this one to obtain a handle to
the singleton shared client.
It wraps a [hickory_resolver::TokioResolver].
There are currently no configuration parameters.
use comprehensive::{NoArgs, Resource, ResourceDependencies};
use comprehensive_dns::{DNSResolver, ResolverHandle};
use std::sync::Arc;
struct SomeResource(ResolverHandle);
#[derive(ResourceDependencies)]
struct SomeResourceDependencies(Arc<DNSResolver>);
impl Resource for SomeResource {
type Args = NoArgs;
type Dependencies = SomeResourceDependencies;
const NAME: &str = "SomeResource";
fn new(
d: SomeResourceDependencies,
_: NoArgs,
) -> Result<Self, Box<dyn std::error::Error>> {
Ok(Self(d.0.resolver()))
}
async fn run(&self) -> Result<(), Box<dyn std::error::Error>> {
println!("{:?}", self.0.as_ref().lookup_ip("example.org.").await);
Ok(())
}
}