tracevault_core/
attribution.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize)]
4pub struct Attribution {
5 pub files: Vec<FileAttribution>,
6 pub summary: AttributionSummary,
7}
8
9#[derive(Debug, Clone, Serialize, Deserialize)]
10pub struct FileAttribution {
11 pub path: String,
12 pub lines_added: u32,
13 pub lines_deleted: u32,
14 pub ai_lines: Vec<LineRange>,
15 pub human_lines: Vec<LineRange>,
16 pub mixed_lines: Vec<LineRange>,
17}
18
19#[derive(Debug, Clone, Serialize, Deserialize)]
20pub struct LineRange {
21 pub start: u32,
22 pub end: u32,
23}
24
25#[derive(Debug, Clone, Serialize, Deserialize)]
26pub struct AttributionSummary {
27 pub total_lines_added: u32,
28 pub total_lines_deleted: u32,
29 pub ai_percentage: f32,
30 pub human_percentage: f32,
31}