pub struct NameserverDetails {
pub consensus: HashMap<String, Vec<String>>,
pub per_vantage: HashMap<String, HashMap<String, Vec<String>>>,
pub inconsistencies: Vec<NameserverIpInconsistency>,
}Expand description
NS-record-specific propagation detail.
All three fields below are only meaningful for NS-record checks. Grouping
them under a single Option<NameserverDetails> on PropagationResult
keeps the generic propagation type free of NS-only data and makes the
optionality explicit — non-NS checks serialize the field as absent rather
than as three empty collections sitting on the wire.
Maps use lowercased FQDNs (typically with trailing dot) as nameserver
keys; per_vantage keys are propagation server IPs (matching
ServerResult.server.ip).
Fields§
§consensus: HashMap<String, Vec<String>>Cross-server consensus: for each nameserver hostname, the A/AAAA value set that the largest number of successfully-responding propagation resolvers agreed on. Sorted+deduped per entry.
per_vantage: HashMap<String, HashMap<String, Vec<String>>>Per-vantage view: for each propagation server (keyed by its IP), the A/AAAA value set that resolver returned when asked for each nameserver hostname. Missing entries mean the per-vantage A/AAAA lookup wasn’t issued or yielded nothing.
inconsistencies: Vec<NameserverIpInconsistency>Propagation resolvers whose per-vantage IPs disagree with consensus.
The primary signal for glue-record propagation lag — a regional
recursor still serving the previous IP for an NS hostname.
Implementations§
Source§impl NameserverDetails
impl NameserverDetails
Sourcepub fn has_inconsistencies(&self) -> bool
pub fn has_inconsistencies(&self) -> bool
True if any propagation resolver returned IPs for a nameserver hostname that differ from the cross-server consensus.
Trait Implementations§
Source§impl Clone for NameserverDetails
impl Clone for NameserverDetails
Source§fn clone(&self) -> NameserverDetails
fn clone(&self) -> NameserverDetails
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for NameserverDetails
impl Debug for NameserverDetails
Source§impl<'de> Deserialize<'de> for NameserverDetails
impl<'de> Deserialize<'de> for NameserverDetails
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for NameserverDetails
impl RefUnwindSafe for NameserverDetails
impl Send for NameserverDetails
impl Sync for NameserverDetails
impl Unpin for NameserverDetails
impl UnsafeUnpin for NameserverDetails
impl UnwindSafe for NameserverDetails
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§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,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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