pub struct CoverageReport {
pub total_pairs_planned: usize,
pub matched: usize,
pub coverage: f64,
pub unmatched_by_reason: BTreeMap<UnmatchedReason, usize>,
pub unmatched_sample: Vec<UnmatchedSide>,
}Expand description
Diagnostic / observability summary of IcMatchResult.
See spec §5.4 for the field contract. All counts mirror the matcher’s already-computed values — this report is a thin pass-through layer with the histogram + sample for auditors / dashboards.
Fields§
§total_pairs_planned: usizeTotal number of distinct IC pairs the manifest planned (sum
across all entities of seller-side plans). Mirrors
IcMatchResult::total_planned.
matched: usizeNumber of fully matched pairs (both sides observed). Equals
IcMatchResult::matched.len().
coverage: f64matched / total_pairs_planned, with 0/0 mapped to 0.0
(mirrors IcMatchResult::coverage so the two stay
consistent — see the matcher’s module docs for the rationale).
unmatched_by_reason: BTreeMap<UnmatchedReason, usize>Histogram of unmatched sides keyed by reason.
Always contains all three UnmatchedReason variants — even
when zero — so the schema is stable across runs and dashboards
can rely on the keys being present. Keyed by the enum itself
(with snake_case serde rename) and stored in a BTreeMap so
the JSON output’s iteration order is deterministic.
unmatched_sample: Vec<UnmatchedSide>Up to UNMATCHED_SAMPLE_CAP unmatched sides for diagnostic
triage. The sample is the head of
IcMatchResult::unmatched (already sorted by pair_id for
determinism) so the same input always produces the same sample.
Trait Implementations§
Source§impl Clone for CoverageReport
impl Clone for CoverageReport
Source§fn clone(&self) -> CoverageReport
fn clone(&self) -> CoverageReport
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 CoverageReport
impl Debug for CoverageReport
Source§impl<'de> Deserialize<'de> for CoverageReport
impl<'de> Deserialize<'de> for CoverageReport
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 CoverageReport
impl RefUnwindSafe for CoverageReport
impl Send for CoverageReport
impl Sync for CoverageReport
impl Unpin for CoverageReport
impl UnsafeUnpin for CoverageReport
impl UnwindSafe for CoverageReport
Blanket Implementations§
impl<T> Allocation for T
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.