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