|
1 | | -use serde::{Deserialize, Serialize}; |
2 | | -use std::path::PathBuf; |
3 | | - |
4 | | -#[derive(Debug, Clone, Default)] |
5 | | -pub(super) struct LoadedFeedbackEvalInput { |
6 | | - pub(super) total_comments_seen: usize, |
7 | | - pub(super) total_reviews_seen: usize, |
8 | | - pub(super) comments: Vec<FeedbackEvalComment>, |
9 | | -} |
10 | | - |
11 | | -#[derive(Debug, Clone)] |
12 | | -pub(super) struct FeedbackEvalComment { |
13 | | - pub(super) source_kind: String, |
14 | | - pub(super) review_id: Option<String>, |
15 | | - pub(super) repo: Option<String>, |
16 | | - pub(super) pr_number: Option<u32>, |
17 | | - pub(super) title: Option<String>, |
18 | | - pub(super) file_path: Option<PathBuf>, |
19 | | - pub(super) line_number: Option<usize>, |
20 | | - pub(super) file_patterns: Vec<String>, |
21 | | - pub(super) content: String, |
22 | | - pub(super) category: String, |
23 | | - pub(super) severity: Option<String>, |
24 | | - pub(super) confidence: Option<f32>, |
25 | | - pub(super) accepted: bool, |
26 | | -} |
27 | | - |
28 | | -#[derive(Debug, Clone, Serialize, Deserialize)] |
29 | | -pub(super) struct FeedbackEvalBucket { |
30 | | - #[serde(default)] |
31 | | - pub(super) name: String, |
32 | | - #[serde(default)] |
33 | | - pub(super) total: usize, |
34 | | - #[serde(default)] |
35 | | - pub(super) accepted: usize, |
36 | | - #[serde(default)] |
37 | | - pub(super) rejected: usize, |
38 | | - #[serde(default)] |
39 | | - pub(super) acceptance_rate: f32, |
40 | | -} |
41 | | - |
42 | | -#[derive(Debug, Clone, Copy, Serialize, Deserialize, Default)] |
43 | | -pub(super) struct FeedbackThresholdMetrics { |
44 | | - #[serde(default)] |
45 | | - pub(super) total_scored: usize, |
46 | | - #[serde(default)] |
47 | | - pub(super) true_positive: usize, |
48 | | - #[serde(default)] |
49 | | - pub(super) false_positive: usize, |
50 | | - #[serde(default)] |
51 | | - pub(super) true_negative: usize, |
52 | | - #[serde(default)] |
53 | | - pub(super) false_negative: usize, |
54 | | - #[serde(default)] |
55 | | - pub(super) precision: f32, |
56 | | - #[serde(default)] |
57 | | - pub(super) recall: f32, |
58 | | - #[serde(default)] |
59 | | - pub(super) f1: f32, |
60 | | - #[serde(default)] |
61 | | - pub(super) agreement_rate: f32, |
62 | | -} |
63 | | - |
64 | | -#[derive(Debug, Clone, Serialize, Deserialize)] |
65 | | -pub(super) struct FeedbackEvalExample { |
66 | | - #[serde(default)] |
67 | | - pub(super) source_kind: String, |
68 | | - #[serde(default, skip_serializing_if = "Option::is_none")] |
69 | | - pub(super) review_id: Option<String>, |
70 | | - #[serde(default, skip_serializing_if = "Option::is_none")] |
71 | | - pub(super) repo: Option<String>, |
72 | | - #[serde(default, skip_serializing_if = "Option::is_none")] |
73 | | - pub(super) pr_number: Option<u32>, |
74 | | - #[serde(default, skip_serializing_if = "Option::is_none")] |
75 | | - pub(super) title: Option<String>, |
76 | | - #[serde(default, skip_serializing_if = "Option::is_none")] |
77 | | - pub(super) file_path: Option<PathBuf>, |
78 | | - #[serde(default, skip_serializing_if = "Option::is_none")] |
79 | | - pub(super) line_number: Option<usize>, |
80 | | - #[serde(default)] |
81 | | - pub(super) category: String, |
82 | | - #[serde(default, skip_serializing_if = "Option::is_none")] |
83 | | - pub(super) severity: Option<String>, |
84 | | - #[serde(default, skip_serializing_if = "Option::is_none")] |
85 | | - pub(super) confidence: Option<f32>, |
86 | | - #[serde(default)] |
87 | | - pub(super) content: String, |
88 | | -} |
89 | | - |
90 | | -#[derive(Debug, Clone, Serialize, Deserialize)] |
91 | | -pub(super) struct FeedbackEvalReport { |
92 | | - #[serde(default)] |
93 | | - pub(super) total_comments_seen: usize, |
94 | | - #[serde(default)] |
95 | | - pub(super) total_reviews_seen: usize, |
96 | | - #[serde(default)] |
97 | | - pub(super) labeled_comments: usize, |
98 | | - #[serde(default)] |
99 | | - pub(super) labeled_reviews: usize, |
100 | | - #[serde(default)] |
101 | | - pub(super) accepted: usize, |
102 | | - #[serde(default)] |
103 | | - pub(super) rejected: usize, |
104 | | - #[serde(default)] |
105 | | - pub(super) acceptance_rate: f32, |
106 | | - #[serde(default)] |
107 | | - pub(super) confidence_threshold: f32, |
108 | | - pub(super) vague_comments: FeedbackEvalBucket, |
109 | | - #[serde(default, skip_serializing_if = "Option::is_none")] |
110 | | - pub(super) confidence_metrics: Option<FeedbackThresholdMetrics>, |
111 | | - #[serde(default)] |
112 | | - pub(super) by_category: Vec<FeedbackEvalBucket>, |
113 | | - #[serde(default)] |
114 | | - pub(super) by_severity: Vec<FeedbackEvalBucket>, |
115 | | - #[serde(default)] |
116 | | - pub(super) by_repo: Vec<FeedbackEvalBucket>, |
117 | | - #[serde(default)] |
118 | | - pub(super) by_file_pattern: Vec<FeedbackEvalBucket>, |
119 | | - #[serde(default)] |
120 | | - pub(super) showcase_candidates: Vec<FeedbackEvalExample>, |
121 | | - #[serde(default)] |
122 | | - pub(super) vague_rejections: Vec<FeedbackEvalExample>, |
123 | | -} |
| 1 | +#[path = "types/input.rs"] |
| 2 | +mod input; |
| 3 | +#[path = "types/report.rs"] |
| 4 | +mod report; |
| 5 | + |
| 6 | +pub(super) use input::{FeedbackEvalComment, LoadedFeedbackEvalInput}; |
| 7 | +pub(super) use report::{ |
| 8 | + FeedbackEvalBucket, FeedbackEvalExample, FeedbackEvalReport, FeedbackThresholdMetrics, |
| 9 | +}; |
0 commit comments