pub struct ScanCoverage {
pub enumerated_members: Vec<String>,
pub scanned_members: Vec<String>,
}Expand description
Member-aware scan coverage: the workspace member set vs the set actually
scanned. Produced by scan_workspace_multi_crate.
The complement (enumerated_members − scanned_members) is the
ignorance frontier: members whose #[presents] sites the scan never
reached. In the current --workspace happy path the two sets are equal
(every enumerated member is scanned), so the frontier is empty — but
recording both makes any future partial-coverage mode (a member filter, a
member whose scan errored) surface its unscanned members explicitly rather
than silently dropping them.
Fields§
§enumerated_members: Vec<String>Every workspace member cargo metadata reported, as ADR-017 canonical
paths (<name>@<version>). Sorted for determinism.
scanned_members: Vec<String>The members actually scanned (canonical paths). A member is here iff its per-member scan ran. Sorted for determinism.
Implementations§
Source§impl ScanCoverage
impl ScanCoverage
Sourcepub fn unscanned_members(&self) -> Vec<&str>
pub fn unscanned_members(&self) -> Vec<&str>
Members that were enumerated but NOT scanned — the ignorance frontier.
Their #[presents] sites (if any) were never seen by this scan.
The frontier is a set: each unscanned member appears at most once,
even if enumerated_members contains a duplicate (degenerate input — a
valid Cargo workspace cannot have two members sharing a name@version,
but the data type carries no construction guard). De-duplicating here
means a downstream ignorance audit reads “is this member unseen?” once
per member, not once per accidental repeat (ATK-COV-2 decision).
Order follows first appearance in
enumerated_members for determinism.
Sourcepub fn is_complete(&self) -> bool
pub fn is_complete(&self) -> bool
True iff every enumerated member was scanned (the ignorance frontier is
empty). The happy path for a full --workspace scan.
Trait Implementations§
Source§impl Clone for ScanCoverage
impl Clone for ScanCoverage
Source§fn clone(&self) -> ScanCoverage
fn clone(&self) -> ScanCoverage
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 ScanCoverage
impl Debug for ScanCoverage
Source§impl<'de> Deserialize<'de> for ScanCoverage
impl<'de> Deserialize<'de> for ScanCoverage
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>,
impl Eq for ScanCoverage
Source§impl PartialEq for ScanCoverage
impl PartialEq for ScanCoverage
Source§fn eq(&self, other: &ScanCoverage) -> bool
fn eq(&self, other: &ScanCoverage) -> bool
self and other values to be equal, and is used by ==.