micromap_rawl/
display.rs

1use crate::Map;
2use core::fmt::{self, Display, Formatter, Write};
3
4impl<K: PartialEq + Display, V: Display, const N: usize> Display for Map<K, V, N> {
5    fn fmt(
6        &self,
7        f: &mut Formatter<'_>,
8    ) -> fmt::Result {
9        let mut first = true;
10        f.write_char('{')?;
11        for (k, v) in self {
12            if first {
13                first = false;
14            } else {
15                f.write_str(", ")?;
16            }
17            k.fmt(f)?;
18            f.write_str(": ")?;
19            v.fmt(f)?;
20        }
21        f.write_char('}')?;
22        Ok(())
23    }
24}
25
26#[cfg(test)]
27mod test {
28    use super::*;
29
30    #[test]
31    fn displays_map() {
32        let mut m: Map<String, i32, 10> = Map::new();
33        m.insert("one".to_string(), 42);
34        m.insert("two".to_string(), 16);
35        assert_eq!(r#"{one: 42, two: 16}"#, format!("{}", m));
36    }
37}