pub struct VitalSigns {Show 27 fields
pub dead_file_pct: Option<f64>,
pub dead_export_pct: Option<f64>,
pub avg_cyclomatic: f64,
pub critical_complexity_pct: Option<f64>,
pub p90_cyclomatic: u32,
pub duplication_pct: Option<f64>,
pub hotspot_count: Option<u32>,
pub hotspot_top_pct_count: Option<u32>,
pub maintainability_avg: Option<f64>,
pub maintainability_low_pct: Option<f64>,
pub unused_dep_count: Option<u32>,
pub unused_deps_per_k_files: Option<f64>,
pub circular_dep_count: Option<u32>,
pub circular_deps_per_k_files: Option<f64>,
pub counts: Option<VitalSignsCounts>,
pub unit_size_profile: Option<RiskProfile>,
pub functions_over_60_loc_per_k: Option<f64>,
pub unit_interfacing_profile: Option<RiskProfile>,
pub p95_fan_in: Option<u32>,
pub coupling_high_pct: Option<f64>,
pub prop_drilling_chain_count: Option<u32>,
pub prop_drilling_max_depth: Option<u32>,
pub p95_render_fan_in: Option<u32>,
pub render_fan_in_high_pct: Option<f64>,
pub max_render_fan_in: Option<u32>,
pub top_render_fan_in: Vec<RenderFanInTopComponent>,
pub total_loc: u64,
}Expand description
Project-wide vital signs — a fixed set of metrics for trend tracking.
Metrics are Option when the data source was not available in the current run
(e.g., duplication_pct is None unless the duplication pipeline was run,
hotspot_count is None without git history).
Fields§
§dead_file_pct: Option<f64>Percentage of files not reachable from any entry point.
dead_export_pct: Option<f64>Percentage of exports never imported by other modules.
avg_cyclomatic: f64Average cyclomatic complexity across all functions.
critical_complexity_pct: Option<f64>Percentage of functions at or above the critical cyclomatic threshold. Used by the scale-invariant health score.
p90_cyclomatic: u3290th percentile cyclomatic complexity.
duplication_pct: Option<f64>Code duplication percentage (None if duplication pipeline was not run).
hotspot_count: Option<u32>Number of hotspot files (score >= 50). None if git history unavailable.
hotspot_top_pct_count: Option<u32>Number of files in the top 1% of the within-project hotspot ranking.
maintainability_avg: Option<f64>Average maintainability index across all scored files (0–100).
maintainability_low_pct: Option<f64>Percentage of scored files with maintainability index below 70. Null if file scores were not computed.
unused_dep_count: Option<u32>Number of unused dependencies (dependencies + devDependencies + optional).
unused_deps_per_k_files: Option<f64>Unused dependencies per 1,000 files. Null if dead code analysis did not run.
circular_dep_count: Option<u32>Number of circular dependency chains.
circular_deps_per_k_files: Option<f64>Circular dependency chains per 1,000 files. Null if dead code analysis did not run.
counts: Option<VitalSignsCounts>Raw counts backing the percentages (for orientation header display).
unit_size_profile: Option<RiskProfile>Function size risk profile: percentage of functions in each size bin.
functions_over_60_loc_per_k: Option<f64>Functions above 60 LOC per 1,000 functions. Null if no functions analyzed.
unit_interfacing_profile: Option<RiskProfile>Parameter count risk profile: percentage of functions in each param bin.
p95_fan_in: Option<u32>95th percentile fan-in across all files. Null if file scores not computed.
coupling_high_pct: Option<f64>Percentage of files with fan-in above the project’s p95 threshold.
prop_drilling_chain_count: Option<u32>Number of located prop-drilling chains (React/Preact props forwarded
unchanged through 3+ pass-through components). None unless the opt-in
prop-drilling rule is enabled (it defaults to off), so the small capped
penalty and the hotspot surface are dormant by default.
prop_drilling_max_depth: Option<u32>The deepest located prop-drilling chain’s depth (forwarding hops). None
when no chains were found or the rule is off. Descriptive context only.
p95_render_fan_in: Option<u32>95th-percentile DISTINCT-PARENTS render fan-in across React/Preact
components (the component-graph analogue of p95_fan_in, which percentiles
per-FILE module fan-in). None on non-React runs. Descriptive
blast-radius context, NOT a gate. Mirrors compute_coupling_concentration.
render_fan_in_high_pct: Option<f64>Percentage of components whose render fan-in exceeds the project’s
max(p95, 10) threshold (reuses the coupling-concentration floor; NO new
tunable constant). None on non-React runs. Mirrors coupling_high_pct.
max_render_fan_in: Option<u32>The single highest DISTINCT-PARENTS count across all components (the
headline blast-radius number: the most distinct render LOCATIONS any one
component is rendered from, the honest edit-ripple count). render_sites
(incl. repeats) is secondary per-component context, never the headline.
None on non-React runs. Descriptive context, no threshold.
top_render_fan_in: Vec<RenderFanInTopComponent>The highest-fan-in React/Preact components, located (component name +
project-relative path + render-site / distinct-parent counts), sorted by
distinct parents (the honest headline axis) descending, tie-broken on
render sites descending, and capped at a small N. Lets a consumer see
WHICH component carries the headline max_render_fan_in, not just the
number. Empty (and omitted from JSON) on non-React runs, so the contract
stays byte-identical there. Descriptive blast-radius context, NOT a gate.
total_loc: u64Total lines of code across all parsed modules.
Trait Implementations§
Source§impl Clone for VitalSigns
impl Clone for VitalSigns
Source§fn clone(&self) -> VitalSigns
fn clone(&self) -> VitalSigns
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 VitalSigns
impl Debug for VitalSigns
Source§impl Default for VitalSigns
impl Default for VitalSigns
Source§fn default() -> VitalSigns
fn default() -> VitalSigns
Source§impl<'de> Deserialize<'de> for VitalSigns
impl<'de> Deserialize<'de> for VitalSigns
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>,
Auto Trait Implementations§
impl Freeze for VitalSigns
impl RefUnwindSafe for VitalSigns
impl Send for VitalSigns
impl Sync for VitalSigns
impl Unpin for VitalSigns
impl UnsafeUnpin for VitalSigns
impl UnwindSafe for VitalSigns
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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 moreSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more