pub struct ImpactRow {Show 16 fields
pub file: String,
pub hop: u32,
pub via_count: u32,
pub ambiguous_count: u32,
pub top_symbols: Vec<String>,
pub top_symbols_more: usize,
pub score: f64,
pub heuristic_count: u32,
pub heuristic: bool,
pub tier: Option<HeuristicTier>,
pub iface_via: Vec<String>,
pub from_lines: Vec<(&'static str, usize)>,
pub infra: bool,
pub why: Why,
pub bus_only: bool,
pub bus_origin: Option<BusOrigin>,
}Expand description
One row of an impact model: a file in the blast radius and its metrics.
Fields§
§file: StringThe file value.
hop: u32The hop value.
via_count: u32The via count value.
ambiguous_count: u32The ambiguous count value.
top_symbols: Vec<String>The top symbols value.
top_symbols_more: usizeThe top symbols more value.
score: f64The score value.
heuristic_count: u32“heuristic” is a property of how the file was REACHED, not of the edges
that reached it: one precise or ambiguous hit makes the file an ordinary
affected file no matter how many guesses also point at it. Only a file
reached EXCLUSIVELY by guesses is flagged. On a precise row neither this
nor heuristic is emitted in --json.
heuristic: boolThe heuristic value.
tier: Option<HeuristicTier>Which heuristic tier REACHED this file. Folded the same way heuristic
itself is – over every guess that landed here – so a file one
extension edge and ten name guesses all point at is an extension row.
Absent from --json on a precise row, like heuristic.
iface_via: Vec<String>Present only on a row the interface hop actually reached, empty (and
omitted from --json) on every other row.
from_lines: Vec<(&'static str, usize)>One representative referencing line per EDGE KIND that actually reached
this file, in the fixed order direct, ctor-di, heuristic, iface, bus;
a kind that never contributed is absent, and a row no kind could
attribute a line to carries no entry at all. The file is the row’s own
file – every edge folded into one row is an edge OUT OF that file –
so a line alone locates the site.
infra: boolSet only on a hub file. The row is still an affected file; this says the
walk stopped THERE rather than continuing through it. false means the
key is absent in --json.
why: WhyWhy this file was reached, carried unchanged from VisitedEntry.
bus_only: booltrue when every path found to this file crosses a bus-hop.
false means the key is absent in --json, same as infra.
bus_origin: Option<BusOrigin>The hop this row’s bus_only marker discloses – present exactly
when bus_only is, absent otherwise. Carried unchanged from
VisitedEntry; for a row reached both directly by a bus hop and
downstream of one, the lowest by (publisher file, line, message,
handler). See impact_why::BusOrigin.
Trait Implementations§
impl StructuralPartialEq for ImpactRow
Auto Trait Implementations§
impl Freeze for ImpactRow
impl RefUnwindSafe for ImpactRow
impl Send for ImpactRow
impl Sync for ImpactRow
impl Unpin for ImpactRow
impl UnsafeUnpin for ImpactRow
impl UnwindSafe for ImpactRow
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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