pub struct SubdomainBaselineDiff {
pub domain: String,
pub baseline_recorded_at: Option<DateTime<Utc>>,
pub added: Vec<String>,
pub removed: Vec<String>,
pub unchanged_count: usize,
pub baseline_missing: bool,
pub baseline_truncated: bool,
}Expand description
A report of how a fresh enumeration differs from the stored baseline.
Produced by SubdomainBaselines::diff; rendered by the human/markdown
formatters and serialized directly for JSON/YAML output.
Fields§
§domain: StringThe domain compared.
baseline_recorded_at: Option<DateTime<Utc>>When the baseline was recorded (None when no baseline exists).
added: Vec<String>Names present now but absent from the baseline (the material change).
removed: Vec<String>Names in the baseline but absent from the fresh enumeration. Informational only — see the module docs for why removals don’t count as material.
unchanged_count: usizeNumber of names present in both the baseline and the fresh set.
baseline_missing: boolTrue when no baseline was stored for this domain (first run). The
added/removed lists are empty in that case so callers keying the
exit code off Self::has_new_names exit 0 on a first run.
baseline_truncated: boolTrue when the baseline was recorded only from truncated enumerations.
added is still listed, but those names may simply be ones the
truncated run never saw, so they are not material until a complete
run has been recorded.
Implementations§
Source§impl SubdomainBaselineDiff
impl SubdomainBaselineDiff
Sourcepub fn has_new_names(&self) -> bool
pub fn has_new_names(&self) -> bool
True when at least one new name appeared since a complete baseline. Callers (CLI/cron) use this to drive a non-zero exit code. Removals never make this true — see the module docs — and neither do names “added” relative to a truncated baseline (a certspotter fallback that hit its page cap), which the next complete run would otherwise report wholesale as new.
Trait Implementations§
Source§impl Clone for SubdomainBaselineDiff
impl Clone for SubdomainBaselineDiff
Source§impl Debug for SubdomainBaselineDiff
impl Debug for SubdomainBaselineDiff
Source§impl<'de> Deserialize<'de> for SubdomainBaselineDiff
impl<'de> Deserialize<'de> for SubdomainBaselineDiff
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 SubdomainBaselineDiff
impl RefUnwindSafe for SubdomainBaselineDiff
impl Send for SubdomainBaselineDiff
impl Sync for SubdomainBaselineDiff
impl Unpin for SubdomainBaselineDiff
impl UnsafeUnpin for SubdomainBaselineDiff
impl UnwindSafe for SubdomainBaselineDiff
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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