pub struct EditValidation {
pub status: String,
pub introduced_errors: Vec<DiagnosticError>,
pub resolved_errors: Vec<DiagnosticError>,
pub validation_confidence: Option<String>,
pub recovery_action: Option<String>,
}Expand description
The result of LSP validation for an edit operation.
Fields§
§status: String"passed", "failed", "skipped", or "uncertain".
"passed": validation ran and detected no new errors"failed": validation ran and detected new errors"skipped": validation was not performed (no LSP available)"uncertain": validation ran but results are unreliable (LSP warmup)
introduced_errors: Vec<DiagnosticError>Errors introduced by the edit.
resolved_errors: Vec<DiagnosticError>Errors resolved by the edit.
validation_confidence: Option<String>IW-2: Confidence in the validation result.
"high": LSP pull diagnostics used (definitive result)."medium": LSP push diagnostics used (may miss errors during indexing)."low": Both pre/post diagnostic sets were empty (could be clean or LSP not ready)."none": Validation was skipped entirely.
Agents should use this to decide whether to re-validate or proceed:
"high" → trust the result; "low"/"none" → consider calling lsp_health first.
recovery_action: Option<String>MT-4: Actionable recovery instruction for the agent.
Present when validation was skipped or degraded due to an LSP error. Tells the agent what to do next to recover or validate externally.
Examples:
"Call lsp_health to check server status""LSP request timed out. Call lsp_health(action='restart').""No LSP configured. Install a language server or run cargo check externally."
Implementations§
Source§impl EditValidation
impl EditValidation
Sourcepub fn skipped_with_recovery(recovery_action: Option<String>) -> Self
pub fn skipped_with_recovery(recovery_action: Option<String>) -> Self
Return a skipped validation result enriched with a recovery hint.
Use this instead of skipped() whenever an LspError is the cause —
pass lsp_error.recovery_hint() as the recovery_action argument.
This is the MT-4 telemetry path.
Sourcepub fn uncertain() -> Self
pub fn uncertain() -> Self
Return an uncertain validation result (LSP ran but results are unreliable).
Use when both pre- and post-edit diagnostics are empty, which could mean either (a) the code is genuinely clean, or (b) the LSP hasn’t finished indexing. Agents should treat “uncertain” as “possibly correct but unverified”.
Trait Implementations§
Source§impl Clone for EditValidation
impl Clone for EditValidation
Source§fn clone(&self) -> EditValidation
fn clone(&self) -> EditValidation
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for EditValidation
impl Debug for EditValidation
Source§impl JsonSchema for EditValidation
impl JsonSchema for EditValidation
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreAuto Trait Implementations§
impl Freeze for EditValidation
impl RefUnwindSafe for EditValidation
impl Send for EditValidation
impl Sync for EditValidation
impl Unpin for EditValidation
impl UnsafeUnpin for EditValidation
impl UnwindSafe for EditValidation
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,
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