pub struct HealthAnalysisResult<GroupResolver = ()> {
pub report: HealthReport,
pub type_aware_meta: Option<TypeAwareMeta>,
pub branching_by_file: BranchingByFile,
pub grouping: Option<HealthGrouping>,
pub group_resolver: Option<GroupResolver>,
pub config: ResolvedConfig,
pub workspace_diagnostics: Vec<WorkspaceDiagnostic>,
pub elapsed: Duration,
pub timings: Option<HealthTimings>,
pub coverage_gaps_has_findings: bool,
pub should_fail_on_coverage_gaps: bool,
pub changed_files_analyzed: Option<Vec<PathBuf>>,
}Expand description
Typed health analysis result shared by CLI, API, NAPI, and future embedders.
The result contract belongs at the engine boundary so downstream callers can depend on a command-neutral shape.
Fields§
§report: HealthReportThe assembled health report for the active run scope.
type_aware_meta: Option<TypeAwareMeta>Optional TypeScript semantic metadata for advisory health overlays.
branching_by_file: BranchingByFilePer-file branching totals, keyed by absolute path.
Threshold-blind and suppression-blind, unlike report, which holds only
units that breached a threshold. The audit compares this map across the
base and head revisions; nothing else reads it, and it is not
serialized, so it carries no schema version.
grouping: Option<HealthGrouping>Per-group health output when grouping is active.
None for the default run; Some for any grouped invocation. The
top-level report reflects the active run scope; consumers that want
per-group metrics read from grouping.groups.
group_resolver: Option<GroupResolver>Optional grouping resolver retained by callers that need to tag findings after analysis without rediscovering ownership or package metadata.
config: ResolvedConfigResolved config the run executed under.
workspace_diagnostics: Vec<WorkspaceDiagnostic>Diagnostics from workspace discovery (undeclared or invalid members).
elapsed: DurationTotal wall time of the health run.
timings: Option<HealthTimings>Per-phase timings, when the run measured them.
coverage_gaps_has_findings: boolTrue when the coverage gaps section produced findings.
should_fail_on_coverage_gaps: boolTrue when coverage gap findings should fail the run (the gate is enforced rather than advisory).
changed_files_analyzed: Option<Vec<PathBuf>>The changed files the run analyzed, when a changed-file set narrowed
it: the files of that set that discovery kept. None when the run was
not narrowed by changed files. Callers size a changed-since scope
from it.
Implementations§
Source§impl<GroupResolver> HealthAnalysisResult<GroupResolver>
impl<GroupResolver> HealthAnalysisResult<GroupResolver>
Sourcepub fn without_group_resolver(self) -> HealthAnalysisResult<()>
pub fn without_group_resolver(self) -> HealthAnalysisResult<()>
Drop presentation-only grouping resolver state while preserving the command-neutral health analysis payload.
Trait Implementations§
Auto Trait Implementations§
impl<GroupResolver> Freeze for HealthAnalysisResult<GroupResolver>
impl<GroupResolver> RefUnwindSafe for HealthAnalysisResult<GroupResolver>where
Option<GroupResolver>: RefUnwindSafe,
impl<GroupResolver> Send for HealthAnalysisResult<GroupResolver>
impl<GroupResolver> Sync for HealthAnalysisResult<GroupResolver>
impl<GroupResolver> Unpin for HealthAnalysisResult<GroupResolver>
impl<GroupResolver> UnsafeUnpin for HealthAnalysisResult<GroupResolver>where
Option<GroupResolver>: UnsafeUnpin,
impl<GroupResolver> UnwindSafe for HealthAnalysisResult<GroupResolver>where
Option<GroupResolver>: UnwindSafe,
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> 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 more