1use crate::error::Error;
2use crate::metadata::ParsedMetadata;
3
4pub fn display_human(parsed: &ParsedMetadata) -> Result<String, Error> {
5 let sets = crate::delta::compute_sets(parsed);
6 Ok(crate::delta::format_human(&sets))
7}
8
9pub fn display_json(parsed: &ParsedMetadata) -> Result<String, Error> {
10 let sets = crate::delta::compute_sets(parsed);
11 Ok(crate::delta::format_json(&sets)?)
12}
13
14pub fn validate_invariant(parsed: &ParsedMetadata) -> Result<bool, Error> {
15 let sets = crate::delta::compute_sets(parsed);
16 let invariant_holds = sets.declared.len() + sets.delta.len() == sets.compiled.len();
17 Ok(invariant_holds)
18}
19
20pub fn display_invariant(invariant_holds: bool) -> String {
21 if invariant_holds {
22 "Invariant holds: declared + delta = compiled".to_string()
23 } else {
24 "Invariant violated: declared + delta != compiled".to_string()
25 }
26}