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(
&mut self,
name: &Domain,
addresses: Vec<IpAddr>,
) -> &mut InMemoryDns
pub fn insert( &mut self, name: &Domain, 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: &Domain, addr: A) -> &mut InMemoryDns
pub fn insert_address<A>(&mut self, name: &Domain, 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: &Domain,
addresses: I,
) -> &mut InMemoryDns
pub fn insert_addresses<I>( &mut self, name: &Domain, 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 = DomainNotMappedErr
type Error = DomainNotMappedErr
Error returned by the
DnsResolver
§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