Struct InMemoryDns
pub struct InMemoryDns { /* private fields */ }Expand description
in-memory Dns that can be used as a simplistic cache,
or wrapped in DnsOverwrite to indicate dns overwrites.
Implementations§
§impl InMemoryDns
impl InMemoryDns
pub fn new() -> InMemoryDns
pub fn new() -> InMemoryDns
Creates a new empty InMemoryDns instance.
pub fn insert_txt_records(
&mut self,
name: impl AsDomainRef,
values: Vec<Vec<u8>>,
) -> &mut InMemoryDns
pub fn insert_txt_records( &mut self, name: impl AsDomainRef, values: Vec<Vec<u8>>, ) -> &mut InMemoryDns
Inserts a TXT record to the InMemoryDns.
Existing mappings will be overwritten.
pub fn insert(
&mut self,
name: impl AsDomainRef,
addresses: Vec<IpAddr>,
) -> &mut InMemoryDns
pub fn insert( &mut self, name: impl AsDomainRef, addresses: Vec<IpAddr>, ) -> &mut InMemoryDns
Inserts a domain to IP address mapping to the InMemoryDns.
Existing mappings will be overwritten.
pub fn insert_address<A>(
&mut self,
name: impl AsDomainRef,
addr: A,
) -> &mut InMemoryDns
pub fn insert_address<A>( &mut self, name: impl AsDomainRef, addr: A, ) -> &mut InMemoryDns
Insert an IP address for a domain.
This method accepts any type that can be converted into an IpAddr,
such as Ipv4Addr or Ipv6Addr.
pub fn insert_addresses<I>(
&mut self,
name: impl AsDomainRef,
addresses: I,
) -> &mut InMemoryDns
pub fn insert_addresses<I>( &mut self, name: impl AsDomainRef, addresses: I, ) -> &mut InMemoryDns
Insert multiple IP addresses for a domain.
This method accepts any iterator which item type can be converted into an IpAddr,
such as Ipv4Addr or Ipv6Addr.
pub fn extend(
&mut self,
overwrites: impl IntoIterator<Item = (Domain, Vec<IpAddr>)>,
) -> &mut InMemoryDns
pub fn extend( &mut self, overwrites: impl IntoIterator<Item = (Domain, Vec<IpAddr>)>, ) -> &mut InMemoryDns
Extend the InMemoryDns with the given mappings.
Existing mappings will be overwritten.
Trait Implementations§
§impl AsRef<InMemoryDns> for DnsOverwrite
impl AsRef<InMemoryDns> for DnsOverwrite
§fn as_ref(&self) -> &InMemoryDns
fn as_ref(&self) -> &InMemoryDns
Converts this type into a shared reference of the (usually inferred) input type.
§impl Clone for InMemoryDns
impl Clone for InMemoryDns
§fn clone(&self) -> InMemoryDns
fn clone(&self) -> InMemoryDns
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read more§impl Debug for InMemoryDns
impl Debug for InMemoryDns
§impl Default for InMemoryDns
impl Default for InMemoryDns
§fn default() -> InMemoryDns
fn default() -> InMemoryDns
Returns the “default value” for a type. Read more
§impl DnsResolver for InMemoryDns
impl DnsResolver for InMemoryDns
§type Error = OpaqueError
type Error = OpaqueError
Error returned by the
DnsResolver§async fn txt_lookup(
&self,
domain: Domain,
) -> Result<Vec<Vec<u8>>, <InMemoryDns as DnsResolver>::Error>
async fn txt_lookup( &self, domain: Domain, ) -> Result<Vec<Vec<u8>>, <InMemoryDns as DnsResolver>::Error>
Resolve the ‘TXT’ records accessible by this resolver for the given key.
§async fn ipv4_lookup(
&self,
domain: Domain,
) -> Result<Vec<Ipv4Addr>, <InMemoryDns as DnsResolver>::Error>
async fn ipv4_lookup( &self, domain: Domain, ) -> Result<Vec<Ipv4Addr>, <InMemoryDns as DnsResolver>::Error>
§async fn ipv6_lookup(
&self,
domain: Domain,
) -> Result<Vec<Ipv6Addr>, <InMemoryDns as DnsResolver>::Error>
async fn ipv6_lookup( &self, domain: Domain, ) -> Result<Vec<Ipv6Addr>, <InMemoryDns as DnsResolver>::Error>
§fn boxed(self) -> BoxDnsResolver
fn boxed(self) -> BoxDnsResolver
Box this resolver to allow for dynamic dispatch.
§impl From<InMemoryDns> for DnsOverwrite
impl From<InMemoryDns> for DnsOverwrite
§fn from(value: InMemoryDns) -> DnsOverwrite
fn from(value: InMemoryDns) -> DnsOverwrite
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for InMemoryDns
impl RefUnwindSafe for InMemoryDns
impl Send for InMemoryDns
impl Sync for InMemoryDns
impl Unpin for InMemoryDns
impl UnwindSafe for InMemoryDns
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Create a new
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more