Struct DnsLru
pub struct DnsLru { /* private fields */ }
Expand description
A cache specifically for storing DNS records.
This is named DnsLru
for historical reasons. It currently uses a “TinyLFU” policy, implemented
in the moka
library.
Implementations§
§impl DnsLru
impl DnsLru
pub fn new(capacity: usize, ttl_config: TtlConfig) -> DnsLru
pub fn new(capacity: usize, ttl_config: TtlConfig) -> DnsLru
Construct a new cache
§Arguments
capacity
- size in number of cached queriesttl_config
- minimum and maximum TTLs for cached records
pub fn insert_records(
&self,
original_query: Query,
records: impl Iterator<Item = Record>,
now: Instant,
) -> Option<Lookup>
pub fn insert_records( &self, original_query: Query, records: impl Iterator<Item = Record>, now: Instant, ) -> Option<Lookup>
inserts a record based on the name and type.
§Arguments
original_query
- is used for matching the records that should be returnedrecords
- the records will be partitioned by type and name for storage in the cachenow
- current time for use in associating TTLs
§Return
This should always return some records, but will be None if there are no records or the original_query matches none
Trait Implementations§
Auto Trait Implementations§
impl Freeze for DnsLru
impl !RefUnwindSafe for DnsLru
impl Send for DnsLru
impl Sync for DnsLru
impl Unpin for DnsLru
impl !UnwindSafe for DnsLru
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