Skip to main content

DnsServiceBindingResolver

Trait DnsServiceBindingResolver 

pub trait DnsServiceBindingResolver:
    Sized
    + Send
    + Sync
    + 'static {
    type Error: Into<Box<dyn Error + Send + Sync>> + Send + 'static;

    // Required methods
    fn lookup_svcb(
        &self,
        domain: Domain,
    ) -> impl Stream<Item = Result<ServiceBinding, Self::Error>> + Send;
    fn lookup_https(
        &self,
        domain: Domain,
    ) -> impl Stream<Item = Result<ServiceBinding, Self::Error>> + Send;

    // Provided method
    fn into_box_dns_service_binding_resolver(
        self,
    ) -> BoxDnsServiceBindingResolver { ... }
}
Available on crate features dns and std only.
Expand description

A resolver of domains into SVCB and HTTPS Service Binding records.

Required Associated Types§

type Error: Into<Box<dyn Error + Send + Sync>> + Send + 'static

Error returned by this resolver.

Required Methods§

fn lookup_svcb( &self, domain: Domain, ) -> impl Stream<Item = Result<ServiceBinding, Self::Error>> + Send

Resolve the complete SVCB RRset for the given domain.

Implementations must validate the complete RRset before yielding any records. If one record is malformed, the stream must yield an error and no records from that RRset, as required by RFC 9460 section 2.2.

fn lookup_https( &self, domain: Domain, ) -> impl Stream<Item = Result<ServiceBinding, Self::Error>> + Send

Resolve the complete HTTPS RRset for the given domain.

Implementations must validate the complete RRset before yielding any records. If one record is malformed, the stream must yield an error and no records from that RRset, as required by RFC 9460 section 2.2.

Provided Methods§

fn into_box_dns_service_binding_resolver(self) -> BoxDnsServiceBindingResolver

Box this resolver to allow dynamic dispatch.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

§

impl<R, const N: usize> DnsServiceBindingResolver for [R; N]

§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> DnsServiceBindingResolver for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)

§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> DnsServiceBindingResolver for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)

§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> DnsServiceBindingResolver for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)

§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9> DnsServiceBindingResolver for (T1, T2, T3, T4, T5, T6, T7, T8, T9)

§

impl<T1, T2, T3, T4, T5, T6, T7, T8> DnsServiceBindingResolver for (T1, T2, T3, T4, T5, T6, T7, T8)

§

impl<T1, T2, T3, T4, T5, T6, T7> DnsServiceBindingResolver for (T1, T2, T3, T4, T5, T6, T7)

§

impl<T1, T2, T3, T4, T5, T6> DnsServiceBindingResolver for (T1, T2, T3, T4, T5, T6)

§

impl<T1, T2, T3, T4, T5> DnsServiceBindingResolver for (T1, T2, T3, T4, T5)

§

impl<T1, T2, T3, T4> DnsServiceBindingResolver for (T1, T2, T3, T4)

§

impl<T1, T2, T3> DnsServiceBindingResolver for (T1, T2, T3)

§

impl<T1, T2> DnsServiceBindingResolver for (T1, T2)

§

impl<T1> DnsServiceBindingResolver for (T1,)

Implementors§

§

impl DnsServiceBindingResolver for BoxDnsResolver

§

impl DnsServiceBindingResolver for BoxDnsServiceBindingResolver

§

impl DnsServiceBindingResolver for DenyAllDnsResolver

§

impl DnsServiceBindingResolver for EmptyDnsResolver

§

type Error = !

§

impl DnsServiceBindingResolver for GlobalDnsResolver

§

impl DnsServiceBindingResolver for HickoryDnsResolver

§

type Error = Box<dyn Error + Send + Sync>

§

impl DnsServiceBindingResolver for LinuxDnsResolver

§

type Error = Box<dyn Error + Send + Sync>

§

impl DnsServiceBindingResolver for TokioDnsResolver

§

impl<A, B, C, D, E, F, G, H, I> DnsServiceBindingResolver for Either9<A, B, C, D, E, F, G, H, I>

§

impl<A, B, C, D, E, F, G, H> DnsServiceBindingResolver for Either8<A, B, C, D, E, F, G, H>

§

impl<A, B, C, D, E, F, G> DnsServiceBindingResolver for Either7<A, B, C, D, E, F, G>

§

impl<A, B, C, D, E, F> DnsServiceBindingResolver for Either6<A, B, C, D, E, F>

§

impl<A, B, C, D, E> DnsServiceBindingResolver for Either5<A, B, C, D, E>

§

impl<A, B, C, D> DnsServiceBindingResolver for Either4<A, B, C, D>

§

impl<A, B, C> DnsServiceBindingResolver for Either3<A, B, C>

§

impl<A, B> DnsServiceBindingResolver for Either<A, B>

§

impl<R> DnsServiceBindingResolver for Arc<R>

§

impl<R> DnsServiceBindingResolver for DomainTrie<R>

§

impl<R> DnsServiceBindingResolver for NonEmptyVec<R>

§

impl<R> DnsServiceBindingResolver for Option<R>

§

impl<R> DnsServiceBindingResolver for Vec<R>