1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
use crate::console::exit::Code; #[derive(Debug, Eq, PartialEq, Clone)] pub struct Problem { error: String, tip: String, code: Code, } impl Problem { #[must_use] pub fn new(error: String, tip: String, code: Code) -> Problem { Problem { error, tip, code } } #[must_use] pub fn code(&self) -> &Code { &self.code } #[must_use] pub fn error(&self) -> &str { &self.error } #[must_use] pub fn tip(&self) -> &str { &self.tip } } #[cfg(test)] mod tests { use pretty_assertions::assert_eq; use crate::console::exit::Code; use crate::lints::Problem; #[test] fn test_has_error() { let problem = Problem::new("Some error".into(), "".into(), Code::NotConventionalCommit); assert_eq!(problem.error(), "Some error") } #[test] fn test_has_has_tip() { let problem = Problem::new("".into(), "Some tip".into(), Code::NotConventionalCommit); assert_eq!(problem.tip(), "Some tip") } #[test] fn test_has_has_code() { let problem = Problem::new("".into(), "".into(), Code::NotConventionalCommit); assert_eq!(problem.code(), &Code::NotConventionalCommit) } }