pub struct DependencyOutcome {
pub yanked: Option<(ConcreteVersion, RemovalStatus)>,
pub deprecation: Option<Deprecation>,
pub fetch_failure: Option<FetchFailure>,
pub no_comparable_versions: bool,
}Expand description
Everything the lifecycle fetch learned about one package, keyed by its normalized name.
All three channels can hold simultaneously for the same package — this is load-bearing,
not an incidental shape. The D5 status gate in
generate_diagnostics_from_cache reads the Self::deprecation and Self::yanked
entries for the same normalized name together and compares their RemovalStatus, and on
the didChange path a surviving deprecation can coexist with a later fetch failure. A single
enum variant per package could not express that overlap.
Fields§
§yanked: Option<(ConcreteVersion, RemovalStatus)>The version found yanked (the in-use version, or latest when only latest itself is
yanked), paired with its RemovalStatus. See VersionData::outcomes’s prior
semantics (#233/#263).
deprecation: Option<Deprecation>Package-level deprecation finding (#205). See Deprecation.
fetch_failure: Option<FetchFailure>Registry fetch errored, timed out, or was never attempted (#267). See FetchFailure.
no_comparable_versions: boolThe registry fetch succeeded (no Self::fetch_failure) but produced zero
comparable versions — e.g. a real GitHub repository whose only tags don’t parse
as full major.minor.patch semver (dtolnay/rust-toolchain’s sole tag v1,
issue #550). Distinct from both an absent DependencyOutcome entry (“never
fetched”) and Self::fetch_failure (“couldn’t be asked”): this package
demonstrably exists, so R5
must not claim it is unknown.
Implementations§
Trait Implementations§
Source§impl Clone for DependencyOutcome
impl Clone for DependencyOutcome
Source§fn clone(&self) -> DependencyOutcome
fn clone(&self) -> DependencyOutcome
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 DependencyOutcome
impl Debug for DependencyOutcome
Source§impl Default for DependencyOutcome
impl Default for DependencyOutcome
Source§fn default() -> DependencyOutcome
fn default() -> DependencyOutcome
Source§impl PartialEq for DependencyOutcome
impl PartialEq for DependencyOutcome
Source§fn eq(&self, other: &DependencyOutcome) -> bool
fn eq(&self, other: &DependencyOutcome) -> bool
self and other values to be equal, and is used by ==.