#[non_exhaustive]pub struct FixProposal {
pub rule: RuleId,
pub source: FixSource,
pub span: Span,
pub original: Box<str>,
pub replacement: Box<str>,
pub confidence: f32,
pub migration_ref: Option<&'static str>,
}Expand description
A proposed fix for a diagnostic violation.
Pure data — deterministic, timestamp-free, classifier-free, safe to snapshot
in tests. A FixProposal is a suggestion until Engine::fix promotes it
to an AppliedFix when confidence >= configuration.confidence_threshold.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.rule: RuleIdThe rule that generated this proposal.
source: FixSourceProvenance: built-in rule, corrections map, or migration table.
span: SpanByte range in original source to replace.
original: Box<str>The bytes currently occupying span.
replacement: Box<str>Replacement text.
confidence: f32Confidence in this fix (0.0–1.0). Fixes below the configured threshold are surfaced as suggestions rather than applied automatically.
migration_ref: Option<&'static str>Reference to the CAPCO rule or migration document justifying this fix.
Implementations§
Source§impl FixProposal
impl FixProposal
Sourcepub fn new(
rule: RuleId,
source: FixSource,
span: Span,
original: impl Into<Box<str>>,
replacement: impl Into<Box<str>>,
confidence: f32,
migration_ref: Option<&'static str>,
) -> Self
pub fn new( rule: RuleId, source: FixSource, span: Span, original: impl Into<Box<str>>, replacement: impl Into<Box<str>>, confidence: f32, migration_ref: Option<&'static str>, ) -> Self
Create a new fix proposal with invariant checks.
§Panics
Panics if confidence is outside [0.0, 1.0] or is NaN. The check
runs in release builds (not just debug) because NaN silently fails
every threshold comparison and INFINITY silently bypasses every
threshold — both are correctness-impacting bugs in release.
Trait Implementations§
Source§impl Clone for FixProposal
impl Clone for FixProposal
Source§fn clone(&self) -> FixProposal
fn clone(&self) -> FixProposal
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more