Skip to main content

AuditKeySnapshot

Struct AuditKeySnapshot 

Source
pub struct AuditKeySnapshot {
Show 14 fields pub type_aware_identity: Option<SemanticAnalysisIdentity>, pub type_aware_gap_signature: Vec<String>, pub syntactic_dead_code: Option<FxHashSet<String>>, pub dead_code: FxHashSet<String>, pub unprovable_dead_code: FxHashSet<String>, pub health: ComplexityBaseline, pub styling: FxHashSet<String>, pub dupes: FxHashSet<String>, pub dupe_groups: Vec<BaseCloneGroup>, pub boundary_edges: FxHashSet<String>, pub cycles: FxHashSet<String>, pub public_api: FxHashSet<String>, pub branching: FxHashMap<String, FileBranching>, pub inherited_health: Vec<ComplexityBaseline>,
}
Expand description

Attribution keys of one audit side (the base commit, or the head run when the base pass is skipped).

Every key set is root-relative, so a base snapshot taken in a temporary worktree joins the head run by key.

Fields§

§type_aware_identity: Option<SemanticAnalysisIdentity>

Semantic identity of a type-aware dead-code pass, None for a syntactic pass.

§type_aware_gap_signature: Vec<String>

Sorted reasons and omissions of the semantic queries that did not complete. Two sides with different gaps cannot compare semantic keys.

§syntactic_dead_code: Option<FxHashSet<String>>

Dead-code keys captured before type-aware refinement. None when the pass ran without type-aware analysis (then dead_code is already syntactic). The degraded attribution path compares these.

§dead_code: FxHashSet<String>

Dead-code keys.

§unprovable_dead_code: FxHashSet<String>

Dead-code collections, by JSON key, that this side did not report because it could not prove their findings (see fallow_engine::unprovable::unprovable_dead_code_collections). A head finding of such a collection is inherited.

§health: ComplexityBaseline

Complexity findings by identity key, with their metric values. The new-only gate compares the metric values of matched findings.

§styling: FxHashSet<String>

Styling keys.

§dupes: FxHashSet<String>

Clone-group keys.

§dupe_groups: Vec<BaseCloneGroup>

Instance locations of the clone groups, for the diverged-clone-sibling rule. The paths stay base paths: the rename remap does not move them.

§boundary_edges: FxHashSet<String>

Cross-zone boundary edge keys (<from_zone>->-<to_zone>), one for each zone pair.

§cycles: FxHashSet<String>

Canonical circular-dependency keys.

§public_api: FxHashSet<String>

Exports-aware public-export keys (<rel_path>::<name>). Empty unless the surface computed them from the retained module graph.

§branching: FxHashMap<String, FileBranching>

Branching totals per root-relative path. Threshold-blind and suppression-blind, so a threshold override or an ignore comment cannot move the head-versus-base comparison.

§inherited_health: Vec<ComplexityBaseline>

Complexity findings of the inherited bases (see AuditKeySnapshot::absorb_inherited). A head finding is introduced only when it is introduced against health and against each of these.

Implementations§

Source§

impl AuditKeySnapshot

Source

pub fn from_view(view: &AuditAnalysesView<'_>) -> Self

Take the attribution keys of one set of analyses.

Source

pub fn absorb_inherited(&mut self, inherited: Self)

Treat the findings of an inherited base as inherited too.

An inherited base is a commit of the default branch that the change merged. A key set takes the union, so a key that either side has is not introduced. Complexity findings keep one baseline per side, because their match rule pairs each base finding with at most one head finding. The clone locations, the branching totals and the type-aware identity stay those of the primary base. When the type-aware identity or the query gaps differ, the refined dead-code keys stay out. inherited must already use head paths.

Source

pub fn inherit_unprovable_dead_code(&mut self, head: &DeadCodeView<'_>)

Treat the head findings of each collection that this side could not prove as inherited.

The base snapshot is a checkout of committed files. A gitignored workspace member (a cloned sub-repository) is missing there, so the base does not report a class that the head reports. The keys of those head findings join the dead-code key sets, so every surface that compares keys (verdict, attribution counts, introduced flags) reads them as inherited.

Source

pub fn remap_for_renames(&mut self, renames: &[RenamedFile], root: &Path)

Relocate the keys of renamed files onto their head paths.

Applies to every path-keyed family (dead code, complexity, styling, duplication, cycles, public API, branching). Boundary-edge keys are zone-pair keys without a path, and the type-aware identity has no path, so they stay as they are. The syntactic dead-code keys of the degraded type-aware path also stay as they are.

Source

pub fn to_programmatic(&self) -> AuditProgrammaticKeySnapshot

The public key snapshot of the programmatic audit output. Its health set also holds the styling keys.

Trait Implementations§

Source§

impl Clone for AuditKeySnapshot

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for AuditKeySnapshot

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for AuditKeySnapshot

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<'a, T> FromIn<'a, T> for T

Source§

fn from_in(t: T, _: &'a Allocator) -> T

Converts to this type from the input type within the given allocator.
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<'a, T, U> IntoIn<'a, U> for T
where U: FromIn<'a, T>,

Source§

fn into_in(self, allocator: &'a Allocator) -> U

Converts this type into the (usually inferred) input type within the given allocator.
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more