pub struct CollapsedProducer {
pub producer: String,
pub origins: Vec<String>,
pub versions: Vec<String>,
pub agreed: bool,
}Expand description
What one producer’s fleet-wide answers looked like before a
SliceSet kept one of them (#385).
A set is indexed by producer name, so N hosts running one producer
collapse to one entry. For a decoder that is right — refining a key needs
a slice per producer and which host served it is irrelevant. What was
wrong is that the collapse was silent: the resulting set looked complete
and was one arbitrary host’s answer, and a diff computed from it read
as fleet-wide truth. This is the receipt.
It lives here rather than beside the fold that builds it because it is
rendered: zenctl registry diff --format json carries it, so it is a wire
shape, and every wire shape in this crate lives under report/ (#399).
It loses the #[non_exhaustive] it carried in model/ on the same move,
and for the same reason: nothing under report/ has one. A wire shape is
pinned by a test rather than by a marker, and a shape a fixture crate
cannot spell is one no corpus can pin.
Fields§
§producer: StringThe producer (or service) base name the collapse happened on.
origins: Vec<String>Every origin that served a slice for it, in reply order.
versions: Vec<String>The [registry] version each of those served, index-parallel with
origins.
agreed: boolWhether every origin served byte-identical TOML.
false is the finding: the fleet does not agree about what this
producer declares — mid-rollout, or a host running last month’s build
— and this set kept one of the answers. Which one is arrival order,
which is not a fact about the fleet.
Trait Implementations§
Source§impl Clone for CollapsedProducer
impl Clone for CollapsedProducer
Source§fn clone(&self) -> CollapsedProducer
fn clone(&self) -> CollapsedProducer
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 CollapsedProducer
impl Debug for CollapsedProducer
impl Eq for CollapsedProducer
Source§impl PartialEq for CollapsedProducer
impl PartialEq for CollapsedProducer
Source§impl Serialize for CollapsedProducer
impl Serialize for CollapsedProducer
impl StructuralPartialEq for CollapsedProducer
Auto Trait Implementations§
impl Freeze for CollapsedProducer
impl RefUnwindSafe for CollapsedProducer
impl Send for CollapsedProducer
impl Sync for CollapsedProducer
impl Unpin for CollapsedProducer
impl UnsafeUnpin for CollapsedProducer
impl UnwindSafe for CollapsedProducer
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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