pub enum FindingKind {
TestReference {
test: Location,
matched_symbols: Vec<String>,
},
TraitImpl {
trait_name: String,
impl_for: String,
impl_site: Location,
},
DerivedTraitImpl {
trait_name: String,
impl_for: String,
derive_site: Location,
},
DynDispatch {
trait_name: String,
site: Location,
},
DocDriftLink {
symbol: String,
doc: Location,
line: u32,
},
DocDriftKeyword {
symbol: String,
doc: Location,
line: u32,
},
FfiSignatureChange {
symbol: String,
file: PathBuf,
change: &'static str,
},
BuildScriptChanged {
file: PathBuf,
},
SemverCheck {
level: String,
details: String,
},
ResolvedReference {
source_symbol: String,
target: Location,
},
RuntimeSurface {
framework: String,
identifier: String,
site: Location,
},
TraitDefinitionChange {
trait_name: String,
file: PathBuf,
method: Option<String>,
change: TraitChange,
},
}Expand description
Reason a specific finding was emitted. Variants carry the analysis-kind
payload; cross-cutting fields (tier, confidence, severity) live on
Finding.
Variants§
TestReference
A test function whose body syntactically references a changed symbol.
TraitImpl
An impl TraitName for T block in the workspace where TraitName
was defined in a changed file.
DerivedTraitImpl
A #[derive(TraitName)] attribute on a struct, enum, or union where
TraitName was defined in a changed file. Treated as an implicit
impl site — the derive will expand to one at compile time — but
distinguished from TraitImpl so consumers can filter.
DynDispatch
A dyn TraitName type reference for a trait whose definition changed.
DocDriftLink
An intra-doc link like [Symbol] in a markdown file or /// comment
referencing a changed symbol.
DocDriftKeyword
A plain identifier match inside a doc comment or markdown file — weaker
signal than an intra-doc link, emitted at Possible tier only.
FfiSignatureChange
An extern "C" signature or #[no_mangle] function was added,
removed, or modified. Signatures cross the Rust/native boundary —
downstream consumers outside Rust cannot be analyzed by us, so these
are always surfaced at High severity.
BuildScriptChanged
A build.rs script file changed. Build scripts can invalidate
downstream compilation in non-obvious ways (env vars, rerun-if-*,
generated code, linker flags).
SemverCheck
Outcome of a cargo-semver-checks run. level is one of
"breaking" (the only currently-emitted value) or a finer-grained
classification in a future release. details carries the tool’s
own output verbatim so consumers can surface it without a
re-invocation.
ResolvedReference
A name-resolved reference to a changed symbol, emitted by the
rust-analyzer LSP integration. These are the only findings that
legitimately reach the Proven tier in this release — the syn-only
analyzers (TestReference, TraitImpl, DerivedTraitImpl, etc.) top out
at Likely because they can’t prove name resolution without a
compiler front-end.
RuntimeSurface
A runtime-surface handler (HTTP route, CLI subcommand, etc.)
implicated by a changed symbol. Emitted by framework-specific
adapters (axum, clap — see src/adapters.rs). framework
names the adapter that produced it; identifier is the
framework-specific surface identity (route path, subcommand
name); site points at the Rust source defining the handler.
TraitDefinitionChange
A specific, per-method change inside a trait definition. Complements
TraitImpl (which flags every impl of a changed trait at blanket
precision) by explaining what about the trait changed — required
vs default method, added/removed, signature vs body. Severity and
confidence derive from change per README §3B.
Implementations§
Source§impl FindingKind
impl FindingKind
Sourcepub fn default_severity(&self) -> SeverityClass
pub fn default_severity(&self) -> SeverityClass
Default severity for this kind — callers can override but rarely need to.
Sourcepub fn primary_path(&self) -> Option<&Path>
pub fn primary_path(&self) -> Option<&Path>
The primary file path this finding is about, for ignore-filtering
and UI “go to file” affordances. Returns None for global findings
that don’t name a specific path (e.g. SemverCheck, which reports
on the whole public API surface).
Every possible value Self::tag can return — useful for schema
generators (SARIF rules list, MCP tool descriptions) that need
to enumerate kinds without having a runtime instance.
Trait Implementations§
Source§impl Clone for FindingKind
impl Clone for FindingKind
Source§fn clone(&self) -> FindingKind
fn clone(&self) -> FindingKind
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 FindingKind
impl Debug for FindingKind
Source§impl PartialEq for FindingKind
impl PartialEq for FindingKind
Source§fn eq(&self, other: &FindingKind) -> bool
fn eq(&self, other: &FindingKind) -> bool
self and other values to be equal, and is used by ==.