Skip to main content

tracevault_core/
attribution.rs

1use 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}