#[derive(Debug, PartialEq, Serialize, JsonSchema)]
pub struct HashOutput {
pub r#type: &'static str,
#[serde(skip_serializing_if = "Option::is_none")]
pub path: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub source: Option<&'static str>,
pub algorithm: &'static str,
#[serde(rename = "checksum")]
pub value: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub bytes: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub verified: Option<bool>,
pub elapsed_ms: u64,
}
#[derive(Debug, PartialEq, Serialize, JsonSchema)]
pub struct HashVerifyOutput {
pub r#type: &'static str,
pub path: String,
pub algorithm: &'static str,
#[serde(rename = "checksum")]
pub value: String,
pub expected: String,
pub verified: bool,
pub ok: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub code: Option<&'static str>,
#[serde(skip_serializing_if = "Option::is_none")]
pub exit: Option<u8>,
pub bytes: u64,
pub elapsed_ms: u64,
}
#[derive(Debug, PartialEq, Serialize, JsonSchema)]
pub struct DeleteOutput {
pub r#type: &'static str,
pub path: String,
pub bytes: u64,
#[serde(skip_serializing_if = "Option::is_none")]
pub checksum_before: Option<String>,
pub write_strategy: &'static str,
#[serde(skip_serializing_if = "Option::is_none")]
#[schemars(extend("type" = "string"))]
pub backup_skipped: Option<String>,
pub elapsed_ms: u64,
#[serde(skip_serializing_if = "Option::is_none")]
#[schemars(extend("type" = "string"))]
pub backup_path: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub warnings: Option<Vec<String>>,
}
#[derive(Debug, PartialEq, Serialize, JsonSchema)]
pub struct CountTotals {
pub files: u64,
pub lines: u64,
pub blank: u64,
pub bytes: u64,
}
#[derive(Debug, PartialEq, Serialize, JsonSchema)]
pub struct BackupSummary {
pub r#type: &'static str,
pub files_backed_up: u64,
#[serde(skip_serializing_if = "Option::is_none")]
pub files_skipped: Option<u64>,
pub total_bytes: u64,
#[serde(skip_serializing_if = "Option::is_none")]
pub files_budget_dropped: Option<u64>,
pub dry_run: bool,
pub elapsed_ms: u64,
#[serde(skip_serializing_if = "Option::is_none")]
pub walker_stopped_early: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub files_failed: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub partial: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub errors: Option<Vec<FileFailure>>,
}
#[derive(Debug, PartialEq, Serialize, JsonSchema)]
pub struct ReplacePreview {
pub r#type: &'static str,
pub path: String,
pub replacements: u64,
pub diff: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub risk_assessment: Option<WriteRiskAssessment>,
}
#[derive(Debug, Serialize, JsonSchema)]
pub struct TextFieldsOutput<'a> {
pub r#type: &'static str,
pub fields: Vec<&'a str>,
}
#[derive(Debug, PartialEq, Serialize, JsonSchema)]
pub struct PruneBackupSummary {
pub r#type: &'static str,
pub action: String,
pub total: usize,
pub elapsed_ms: u64,
#[serde(skip_serializing_if = "Option::is_none")]
pub walker_stopped_early: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub files_failed: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub partial: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub errors: Option<Vec<FileFailure>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub files_budget_dropped: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub targets_missing: Option<u64>,
}
#[derive(Debug, PartialEq, Serialize, JsonSchema)]
pub struct EditLoopSummary {
pub r#type: &'static str,
pub action: String,
pub path: String,
pub pairs_total: usize,
pub pairs_applied: usize,
pub pairs_unmatched: usize,
pub elapsed_ms: u64,
pub pair_results: Vec<EditLoopPairResult>,
pub write_strategy: &'static str,
#[serde(skip_serializing_if = "Option::is_none")]
#[schemars(extend("type" = "string"))]
pub backup_skipped: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub risk_assessment: Option<WriteRiskAssessment>,
}
#[derive(Debug, PartialEq, Serialize, JsonSchema)]
pub struct SemanticMatchEvent {
pub r#type: &'static str,
pub rank: usize,
pub score: f64,
pub path: String,
pub line: u64,
pub snippet: String,
pub backend: &'static str,
}
#[derive(Debug, PartialEq, Serialize, JsonSchema)]
pub struct QueryKindEvent {
pub r#type: &'static str,
pub path: String,
pub language: String,
pub kind: String,
pub count: usize,
}
#[derive(Debug, PartialEq, Serialize, JsonSchema)]
pub struct RecipeStepEvent {
pub r#type: &'static str,
pub step: u64,
pub name: String,
pub status: String,
pub detail: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub checksum: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub child_summary: Option<serde_json::Value>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, JsonSchema)]
pub struct CodemodRuleStats {
pub matches: u64,
pub files: u64,
}
#[derive(Debug, PartialEq, Serialize, JsonSchema)]
pub struct TransformRuleBegin {
pub r#type: &'static str,
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
pub language: String,
}
#[derive(Debug, PartialEq, Serialize, JsonSchema)]
pub struct SparseOutlineBudget {
pub r#type: &'static str,
pub files_seen: u64,
pub items: u64,
pub truncated: bool,
pub max_files: u64,
}