1use super::BitTiming;
2use std::fmt::{Display, Formatter, Result};
3
4impl Display for BitTiming {
5 fn fmt(&self, f: &mut Formatter<'_>) -> Result {
6 match (self.baudrate, self.btr1, self.btr2) {
7 (Some(baudrate), Some(btr1), Some(btr2)) => {
8 write!(f, "BS_: {} : {},{}", baudrate, btr1, btr2)
9 }
10 (Some(baudrate), _, _) => {
11 write!(f, "BS_: {}", baudrate)
12 }
13 _ => {
14 write!(f, "BS_:")
15 }
16 }
17 }
18}
19
20#[cfg(test)]
21mod tests {
22 use super::*;
23
24 #[test]
25 fn test_display_empty() {
26 let bt = BitTiming::new();
27 assert_eq!(bt.to_string(), "BS_:");
28 }
29
30 #[test]
31 fn test_display_baudrate_only() {
32 let bt = BitTiming::with_baudrate(500);
33 assert_eq!(bt.to_string(), "BS_: 500");
34 }
35
36 #[test]
37 fn test_display_full() {
38 let bt = BitTiming::with_btr(500, 12, 34);
39 assert_eq!(bt.to_string(), "BS_: 500 : 12,34");
40 }
41}