zenkey_fleet/report/seed.rs
1//! The seeding plane: what each path of a seeded subscription contributed.
2//!
3//! Every count here reads three ways on purpose — `None` is a path that was
4//! switched off, `Some(0)` is a path that ran and nobody answered, and a
5//! number is a number (RFC 09 §5.1 O4).
6
7/// What each seed path contributed.
8#[derive(Debug, Clone, Copy, PartialEq, Eq, serde::Serialize)]
9pub struct SeedCoverage {
10 /// Replies from the `@adv` cache query (`None` = the history path was
11 /// disabled; `Some(0)` = ran and no cache answered — an observation,
12 /// not a verdict).
13 pub history_replies: Option<usize>,
14 /// Replies from the storage GET (same `None`/`Some(0)` reading).
15 pub storage_replies: Option<usize>,
16 /// Samples suppressed by the merge — not newer than what was already
17 /// seen for their key. The honesty counter: a seed that arrived late
18 /// and lost (or duplicated the other path) is counted, never silently
19 /// absorbed.
20 pub superseded: u64,
21}