Struct TtlConfig
pub struct TtlConfig { /* private fields */ }
Expand description
The time-to-live (TTL) configuration used by the cache.
Minimum and maximum TTLs can be set for both positive responses and negative responses. Separate limits may be set depending on the query type.
Note that TTLs in DNS are represented as a number of seconds stored in a 32-bit unsigned
integer. We use Duration
here, instead of u32
, which can express larger values than the DNS
standard. Generally, a Duration
greater than u32::MAX_VALUE
shouldn’t cause any issue, as
this will never be used in serialization, but note that this would be outside the standard
range.
Implementations§
§impl TtlConfig
impl TtlConfig
pub fn from_opts(opts: &ResolverOpts) -> TtlConfig
pub fn from_opts(opts: &ResolverOpts) -> TtlConfig
Construct the LRU’s TTL configuration based on the ResolverOpts configuration.
pub fn new(
positive_min_ttl: Option<Duration>,
negative_min_ttl: Option<Duration>,
positive_max_ttl: Option<Duration>,
negative_max_ttl: Option<Duration>,
) -> TtlConfig
pub fn new( positive_min_ttl: Option<Duration>, negative_min_ttl: Option<Duration>, positive_max_ttl: Option<Duration>, negative_max_ttl: Option<Duration>, ) -> TtlConfig
Creates a new cache TTL configuration.
The provided minimum and maximum TTLs will be applied to all queries unless otherwise
specified via Self::with_query_type_ttl_bounds
.
If a minimum value is not provided, it will default to 0 seconds. If a maximum value is not provided, it will default to one day.
pub fn with_query_type_ttl_bounds(
&mut self,
query_type: RecordType,
positive_min_ttl: Option<Duration>,
negative_min_ttl: Option<Duration>,
positive_max_ttl: Option<Duration>,
negative_max_ttl: Option<Duration>,
) -> &mut TtlConfig
pub fn with_query_type_ttl_bounds( &mut self, query_type: RecordType, positive_min_ttl: Option<Duration>, negative_min_ttl: Option<Duration>, positive_max_ttl: Option<Duration>, negative_max_ttl: Option<Duration>, ) -> &mut TtlConfig
Override the minimum and maximum TTL values for a specific query type.
If a minimum value is not provided, it will default to 0 seconds. If a maximum value is not provided, it will default to one day.
pub fn positive_response_ttl_bounds(
&self,
query_type: RecordType,
) -> RangeInclusive<Duration> ⓘ
pub fn positive_response_ttl_bounds( &self, query_type: RecordType, ) -> RangeInclusive<Duration> ⓘ
Retrieves the minimum and maximum TTL values for positive responses.
pub fn negative_response_ttl_bounds(
&self,
query_type: RecordType,
) -> RangeInclusive<Duration> ⓘ
pub fn negative_response_ttl_bounds( &self, query_type: RecordType, ) -> RangeInclusive<Duration> ⓘ
Retrieves the minimum and maximum TTL values for negative responses.
Trait Implementations§
impl Eq for TtlConfig
impl StructuralPartialEq for TtlConfig
Auto Trait Implementations§
impl Freeze for TtlConfig
impl RefUnwindSafe for TtlConfig
impl Send for TtlConfig
impl Sync for TtlConfig
impl Unpin for TtlConfig
impl UnwindSafe for TtlConfig
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§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> ⓘ
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> ⓘ
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>
Policy
that returns Action::Follow
only if self
and other
return
Action::Follow
. Read more