dbc_rs/bit_timing/
std.rs

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}