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}