api_scanner/scanner/common/
finding_builder.rs1use crate::reports::{Finding, Severity};
2
3pub struct FindingBuilder {
4 url: String,
5 scanner: String,
6 check: String,
7 title: String,
8 severity: Severity,
9 detail: String,
10}
11
12impl FindingBuilder {
13 pub fn new(url: &str, scanner: &str) -> Self {
14 Self {
15 url: url.to_string(),
16 scanner: scanner.to_string(),
17 check: String::new(),
18 title: String::new(),
19 severity: Severity::Info,
20 detail: String::new(),
21 }
22 }
23
24 pub fn check(mut self, check: impl Into<String>) -> Self {
25 self.check = check.into();
26 self
27 }
28
29 pub fn title(mut self, title: impl Into<String>) -> Self {
30 self.title = title.into();
31 self
32 }
33
34 pub fn severity(mut self, severity: Severity) -> Self {
35 self.severity = severity;
36 self
37 }
38
39 pub fn detail(mut self, detail: impl Into<String>) -> Self {
40 self.detail = detail.into();
41 self
42 }
43
44 pub fn build(self) -> Finding {
45 Finding::new(
46 self.url,
47 self.check,
48 self.title,
49 self.severity,
50 self.detail,
51 self.scanner,
52 )
53 }
54}