Skip to main content

micromap/map/
debug.rs

1// SPDX-FileCopyrightText: Copyright (c) 2023-2026 Yegor Bugayenko
2// SPDX-License-Identifier: MIT
3
4use super::Map;
5use core::fmt;
6
7impl<K, V, const N: usize> fmt::Debug for Map<K, V, N>
8where
9    K: fmt::Debug,
10    V: fmt::Debug,
11{
12    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
13        f.debug_map().entries(self.iter()).finish()
14    }
15}
16
17#[cfg(test)]
18mod tests {
19    use super::*;
20
21    #[test]
22    fn debugs_map() {
23        let mut m: Map<String, i32, 10> = Map::new();
24        m.insert("one".to_string(), 42);
25        m.insert("two".to_string(), 16);
26        assert_eq!(r#"{"one": 42, "two": 16}"#, format!("{:?}", m));
27    }
28
29    #[test]
30    fn debug_alternate_map() {
31        let mut m: Map<String, i32, 10> = Map::new();
32        m.insert("one".to_string(), 42);
33        m.insert("two".to_string(), 16);
34        assert_eq!(
35            r#"{
36    "one": 42,
37    "two": 16,
38}"#,
39            format!("{:#?}", m)
40        );
41    }
42}