changeset_operations/verification/
result.rs1use std::collections::HashSet;
2use std::path::PathBuf;
3
4use changeset_core::PackageInfo;
5use gset::Getset;
6
7#[derive(Debug, Getset)]
8pub struct VerificationResult {
9 #[getset(get, vis = "pub")]
10 affected_packages: Vec<PackageInfo>,
11 #[getset(get, vis = "pub")]
12 transitive_dependents: HashSet<String>,
13 #[getset(get, vis = "pub")]
14 covered_packages: HashSet<String>,
15 #[getset(get, vis = "pub")]
16 uncovered_packages: Vec<PackageInfo>,
17 #[getset(get, vis = "pub")]
18 deleted_changesets: Vec<PathBuf>,
19 #[getset(get, vis = "pub")]
20 none_bump_violations: Vec<String>,
21 #[getset(get, vis = "pub")]
22 project_files: Vec<PathBuf>,
23 #[getset(get, vis = "pub")]
24 ignored_files: Vec<PathBuf>,
25}
26
27impl VerificationResult {
28 pub(crate) fn new(
29 affected_packages: Vec<PackageInfo>,
30 transitive_dependents: HashSet<String>,
31 project_files: Vec<PathBuf>,
32 ignored_files: Vec<PathBuf>,
33 ) -> Self {
34 Self {
35 affected_packages,
36 transitive_dependents,
37 covered_packages: HashSet::new(),
38 uncovered_packages: Vec::new(),
39 deleted_changesets: Vec::new(),
40 none_bump_violations: Vec::new(),
41 project_files,
42 ignored_files,
43 }
44 }
45
46 pub(crate) fn insert_covered_package(&mut self, name: String) {
47 self.covered_packages.insert(name);
48 }
49
50 pub(crate) fn set_uncovered_packages(&mut self, uncovered: Vec<PackageInfo>) {
51 self.uncovered_packages = uncovered;
52 }
53
54 pub(crate) fn set_deleted_changesets(&mut self, deleted: Vec<PathBuf>) {
55 self.deleted_changesets = deleted;
56 }
57
58 pub(crate) fn set_none_bump_violations(&mut self, violations: Vec<String>) {
59 self.none_bump_violations = violations;
60 }
61
62 #[must_use]
63 pub fn is_success(&self) -> bool {
64 self.uncovered_packages.is_empty()
65 && self.deleted_changesets.is_empty()
66 && self.none_bump_violations.is_empty()
67 }
68}