From a5e9bbc507160d1192d246e7ed44fc0870ea106b Mon Sep 17 00:00:00 2001 From: Marco Neumann Date: Fri, 6 Aug 2021 09:16:40 +0200 Subject: [PATCH] feat: impl `Display` for `OptionalMinMaxSequence` --- persistence_windows/src/min_max_sequence.rs | 26 +++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/persistence_windows/src/min_max_sequence.rs b/persistence_windows/src/min_max_sequence.rs index da3d44fc73..72e2323b6d 100644 --- a/persistence_windows/src/min_max_sequence.rs +++ b/persistence_windows/src/min_max_sequence.rs @@ -67,6 +67,16 @@ impl OptionalMinMaxSequence { } } +impl std::fmt::Display for OptionalMinMaxSequence { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + if let Some(min) = self.min { + write!(f, "[{}, {}]", min, self.max) + } else { + write!(f, "({}, {}]", self.max, self.max) + } + } +} + #[cfg(test)] mod tests { use super::*; @@ -110,4 +120,20 @@ mod tests { fn test_opt_min_max_checks_values() { OptionalMinMaxSequence::new(Some(11), 10); } + + #[test] + fn test_opt_min_max_display() { + assert_eq!( + OptionalMinMaxSequence::new(Some(10), 20).to_string(), + "[10, 20]".to_string() + ); + assert_eq!( + OptionalMinMaxSequence::new(Some(20), 20).to_string(), + "[20, 20]".to_string() + ); + assert_eq!( + OptionalMinMaxSequence::new(None, 20).to_string(), + "(20, 20]".to_string() + ); + } }