#[derive(Debug, PartialEq, Serialize, JsonSchema)]
pub struct WriteRiskAssessment {
pub original_bytes: u64,
pub new_bytes: u64,
pub size_delta_pct: u32,
pub risk_level: &'static str,
pub guard_triggered: &'static str,
}
#[derive(Debug, PartialEq, Serialize, JsonSchema)]
pub struct ReadOutput {
pub r#type: &'static str,
pub path: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub content: Option<String>,
pub lines: u64,
#[serde(skip_serializing_if = "Option::is_none")]
pub lines_total: Option<u64>,
pub bytes: u64,
pub checksum: String,
pub permissions: String,
pub modified: String,
pub kind: String,
pub binary: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub range: Option<LineRange>,
#[serde(skip_serializing_if = "Option::is_none")]
pub verified: Option<bool>,
pub mode: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub content_b64: Option<String>,
}
#[derive(Debug, PartialEq, Serialize, JsonSchema)]
pub struct ReplaceResult {
pub r#type: &'static str,
pub path: String,
pub replacements: u64,
pub bytes_before: u64,
pub bytes_after: u64,
pub checksum_before: String,
pub checksum_after: String,
pub elapsed_ms: u64,
#[serde(skip_serializing_if = "Option::is_none")]
pub mtime_preserved: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub fuzzy: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub strategy: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub similarity: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub strategies_tried: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub word_ignored: Option<bool>,
}
#[derive(Debug, Serialize, JsonSchema)]
pub struct EditOutput {
pub r#type: &'static str,
pub path: String,
pub edits: u64,
pub mode: String,
pub bytes_before: u64,
pub bytes_after: u64,
pub checksum_before: String,
pub checksum_after: String,
pub lines_before: u64,
pub lines_after: u64,
pub elapsed_ms: u64,
#[serde(skip_serializing_if = "Option::is_none")]
pub fuzzy: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub strategy: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub strategies_tried: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub similarity: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub diff_preview: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub pairs_total: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub pair_results: Option<Vec<PairResult>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub mtime_preserved: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub match_count: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub indent_adjusted: Option<bool>,
}
#[derive(Debug, PartialEq, Serialize, JsonSchema)]
pub struct RollbackResult {
pub r#type: &'static str,
pub path: String,
pub restored_from: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub checksum_before: Option<String>,
pub checksum_after: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub verified: Option<bool>,
pub elapsed_ms: u64,
}
#[derive(Debug, PartialEq, Serialize, JsonSchema)]
pub struct BatchSummary {
pub r#type: &'static str,
pub operations: u64,
pub succeeded: u64,
pub failed: u64,
pub dry_run: bool,
pub elapsed_ms: u64,
#[serde(skip_serializing_if = "Option::is_none")]
pub transaction: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub committed: Option<bool>,
}
#[derive(Debug, Serialize, JsonSchema)]
pub struct DiffSummaryOutput {
pub r#type: &'static str,
pub identical: bool,
pub file_a: String,
pub file_b: String,
pub lines_a: usize,
pub lines_b: usize,
pub similarity_ratio: f32,
pub elapsed_ms: u64,
}
#[derive(Debug, PartialEq, Serialize, JsonSchema)]
pub struct MoveOutput {
pub r#type: &'static str,
pub source: String,
pub target: String,
pub bytes: u64,
pub checksum: String,
pub cross_device: bool,
pub atomic: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub backup_path: Option<String>,
pub elapsed_ms: u64,
}
#[derive(Debug, PartialEq, Serialize, JsonSchema)]
pub struct CountTotalOutput {
pub r#type: &'static str,
pub mode: &'static str,
pub total: CountTotals,
pub elapsed_ms: u64,
}
#[derive(Debug, PartialEq, Serialize, JsonSchema)]
pub struct CountBySizeOutput {
pub r#type: &'static str,
pub mode: &'static str,
pub items: Vec<SizeEntry>,
pub elapsed_ms: u64,
}
#[derive(Debug, PartialEq, Serialize, JsonSchema)]
pub struct BackupPlan {
pub r#type: &'static str,
pub operation: &'static str,
pub path: String,
pub bytes: u64,
pub checksum: String,
}
#[derive(Debug, PartialEq, Serialize, JsonSchema)]
pub struct ApplyPlan {
pub r#type: &'static str,
pub operation: &'static str,
pub path: String,
pub format_detected: String,
pub hunks: usize,
}
#[derive(Debug, Serialize, JsonSchema)]
pub struct TextValuesOutput<'a> {
pub r#type: &'static str,
pub values: Vec<&'a str>,
}
pub use crate::wal::{AutoHealReport, WalDirEntry, WalStateBreakdown, WalStats};
#[derive(Debug, PartialEq, Serialize, JsonSchema)]
pub struct EditLoopPairResult {
pub index: usize,
pub matched: bool,
pub old: String,
pub new: String,
}
#[derive(Debug, PartialEq, Serialize, JsonSchema)]
pub struct WatchEvent {
pub r#type: &'static str,
pub path: String,
pub kind: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub checksum: Option<String>,
}
#[derive(Debug, PartialEq, Serialize, JsonSchema)]
pub struct WatchSummary {
pub r#type: &'static str,
pub events: u64,
pub reason: String,
pub idle_exit_ms: u64,
pub debounce_ms: u64,
pub max_events: u64,
pub elapsed_ms: u64,
}
#[derive(Debug, PartialEq, Serialize, JsonSchema)]
pub struct SemanticSummaryEvent {
pub r#type: &'static str,
pub query: String,
pub k: u64,
pub results: usize,
pub backend: &'static str,
}
#[derive(Debug, PartialEq, Serialize, JsonSchema)]
pub struct RecipeListEvent {
pub r#type: &'static str,
pub name: &'static str,
pub builtin: bool,
}
#[derive(Debug, PartialEq, Serialize, JsonSchema)]
pub struct CodemodStartEvent {
pub r#type: &'static str,
pub phase: &'static str,
pub rules: String,
pub rule_ids: Vec<String>,
pub rule_id: String,
pub dry_run: bool,
}
#[derive(Debug, PartialEq, Serialize, JsonSchema)]
pub struct CodemodSummaryEvent {
pub r#type: &'static str,
pub rules: String,
pub rule_id: String,
pub dry_run: bool,
pub by_rule_id: std::collections::BTreeMap<String, CodemodRuleStats>,
}
#[derive(Debug, PartialEq, Serialize, JsonSchema)]
pub struct TransformRuleError {
pub r#type: &'static str,
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
pub error: String,
}