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