| #[must_use] |
| #[derive(Debug, Clone)] |
| pub struct Summary { |
| // Encountered e.g. an IO error. |
| has_operational_errors: bool, |
| |
| // Failed to reformat code because of parsing errors. |
| has_parsing_errors: bool, |
| |
| // Code is valid, but it is impossible to format it properly. |
| has_formatting_errors: bool, |
| |
| // Formatted code differs from existing code (write-mode diff only). |
| pub has_diff: bool, |
| } |
| |
| impl Summary { |
| pub fn new() -> Summary { |
| Summary { |
| has_operational_errors: false, |
| has_parsing_errors: false, |
| has_formatting_errors: false, |
| has_diff: false, |
| } |
| } |
| |
| pub fn has_operational_errors(&self) -> bool { |
| self.has_operational_errors |
| } |
| |
| pub fn has_parsing_errors(&self) -> bool { |
| self.has_parsing_errors |
| } |
| |
| pub fn has_formatting_errors(&self) -> bool { |
| self.has_formatting_errors |
| } |
| |
| pub fn add_operational_error(&mut self) { |
| self.has_operational_errors = true; |
| } |
| |
| pub fn add_parsing_error(&mut self) { |
| self.has_parsing_errors = true; |
| } |
| |
| pub fn add_formatting_error(&mut self) { |
| self.has_formatting_errors = true; |
| } |
| |
| pub fn add_diff(&mut self) { |
| self.has_diff = true; |
| } |
| |
| pub fn has_no_errors(&self) -> bool { |
| !(self.has_operational_errors || self.has_parsing_errors || self.has_formatting_errors || |
| self.has_diff) |
| } |
| |
| pub fn add(&mut self, other: Summary) { |
| self.has_operational_errors |= other.has_operational_errors; |
| self.has_formatting_errors |= other.has_formatting_errors; |
| self.has_parsing_errors |= other.has_parsing_errors; |
| self.has_diff |= other.has_diff; |
| } |
| |
| pub fn print_exit_codes() { |
| let exit_codes = r#"Exit Codes: |
| 0 = No errors |
| 1 = Encountered operational errors e.g. an IO error |
| 2 = Failed to reformat code because of parsing errors |
| 3 = Code is valid, but it is impossible to format it properly |
| 4 = Formatted code differs from existing code (write-mode diff only)"#; |
| println!("{}", exit_codes); |
| } |
| } |