pub struct RegistryDiff {
pub producers: Vec<ProducerDiff>,
pub collapsed: Asked<Vec<CollapsedProducer>>,
}Expand description
zenctl registry diff (issue #50).
Fields§
§producers: Vec<ProducerDiff>§collapsed: Asked<Vec<CollapsedProducer>>Producers several origins answered for, and whether they agreed (#399).
The diff is computed from one slice per producer, so where the fleet is mid-rollout it is computed from one arbitrary host’s answer. Without this the result read as fleet-wide truth: two hosts on last month’s registry and three on this month’s produced a diff with no indication that four other answers existed, let alone disagreed.
NotAsked = the served side did not come from the bus, so there was
no origin to collapse and the question was never put; Asked([]) =
asked, and every producer had exactly one origin answer. Empty must
not read as agreement (RFC 13 §3 O4).
Implementations§
Source§impl RegistryDiff
impl RegistryDiff
Sourcepub fn disagreeing(&self) -> usize
pub fn disagreeing(&self) -> usize
Producers whose two sides disagree.
Sourcepub fn self_disagreeing(&self) -> usize
pub fn self_disagreeing(&self) -> usize
Producers the fleet does not agree with itself about (#399).
A different question from disagreeing, which is
the fleet against the checkout. NotAsked yields zero, and a caller
that renders the number must say which zero it is.
Trait Implementations§
Source§impl Clone for RegistryDiff
impl Clone for RegistryDiff
Source§fn clone(&self) -> RegistryDiff
fn clone(&self) -> RegistryDiff
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 RegistryDiff
impl Debug for RegistryDiff
Auto Trait Implementations§
impl Freeze for RegistryDiff
impl RefUnwindSafe for RegistryDiff
impl Send for RegistryDiff
impl Sync for RegistryDiff
impl Unpin for RegistryDiff
impl UnsafeUnpin for RegistryDiff
impl UnwindSafe for RegistryDiff
Blanket Implementations§
Source§impl<Source> AccessAs for Source
impl<Source> AccessAs for Source
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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