orx_split_vec/common_traits/
debug.rs

1use crate::{Growth, SplitVec};
2use core::fmt::Debug;
3use orx_pinned_vec::PinnedVec;
4
5impl<T, G> Debug for SplitVec<T, G>
6where
7    T: Debug,
8    G: Growth,
9{
10    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
11        writeln!(
12            f,
13            "SplitVec {{ len: {}, capacity:{}, data: [",
14            self.len(),
15            self.capacity()
16        )?;
17        for frag in &self.fragments {
18            writeln!(f, "    {frag:?}")?;
19        }
20        writeln!(f, "] }}")
21    }
22}
23
24#[cfg(test)]
25mod tests {
26    use crate::*;
27    use alloc::format;
28
29    #[test]
30    fn debug() {
31        let mut vec = SplitVec::with_doubling_growth();
32        for i in 0..13 {
33            vec.push(i);
34        }
35
36        let debug_str = format!("{:?}", vec);
37        assert_eq!(
38            "SplitVec { len: 13, capacity:28, data: [\n    [0, 1, 2, 3]\n    [4, 5, 6, 7, 8, 9, 10, 11]\n    [12]\n] }\n",
39            debug_str
40        );
41    }
42}