pub struct TierCFinding<'a> {Show 13 fields
pub ecosystem: Ecosystem,
pub advisory_id: String,
pub aliases: Vec<String>,
pub title: String,
pub severity: Severity,
pub cvss_score: Option<f32>,
pub package: String,
pub installed: Version,
pub patched: Vec<VersionReq>,
pub direct: bool,
pub dependency_path: Vec<String>,
pub repo: &'a RepoId,
pub reach_reason: &'static str,
}Expand description
The inputs a feeder supplies to build one Tier-C VulnFinding. The version-matching
decision (and any to_semver coercion of the installed/patched versions) happens in the
feeder; everything here is already in the shared model’s types.
Fields§
§ecosystem: EcosystemThe ecosystem this finding came from.
advisory_id: StringThe advisory id (the osv.dev URL is derived from it).
aliases: Vec<String>CVE/GHSA/… cross-reference aliases.
title: StringDisplay title — typically the advisory summary, falling back to the id.
severity: SeveritySeverity band.
cvss_score: Option<f32>CVSS base score when the advisory carries one (None where the feeder does not
extract it).
package: StringThe affected package name.
installed: VersionThe installed version, in the shared SemVer model (already coerced by the feeder).
patched: Vec<VersionReq>Versions that fix the advisory; empty means “no fix available”.
direct: boolWhether the package is a direct dependency.
dependency_path: Vec<String>A representative introducer chain [root, …, package]; empty when the feeder cannot
compute a dependency graph.
repo: &'a RepoIdThe repo the package was found in.
reach_reason: &'static strThe reason string for the Tier-C Unknown reachability verdict (the feeder names the
fidelity, e.g. “package-level scan (no toolchain): version match only”).
Implementations§
Source§impl TierCFinding<'_>
impl TierCFinding<'_>
Sourcepub fn build(self) -> VulnFinding
pub fn build(self) -> VulnFinding
Assemble the VulnFinding. Package-level only: affected_functions is empty,
reachable is None, and reachability is the Tier-C Unknown contract (never
NotReachable — see Reachability::tier_c_unknown).
Auto Trait Implementations§
impl<'a> Freeze for TierCFinding<'a>
impl<'a> RefUnwindSafe for TierCFinding<'a>
impl<'a> Send for TierCFinding<'a>
impl<'a> Sync for TierCFinding<'a>
impl<'a> Unpin for TierCFinding<'a>
impl<'a> UnsafeUnpin for TierCFinding<'a>
impl<'a> UnwindSafe for TierCFinding<'a>
Blanket Implementations§
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> 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