Skip to content

Commit b4b228d

Browse files
committed
Implement Debug for FenwickTree
1 parent 032ef62 commit b4b228d

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

src/fenwicktree.rs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
use std::fmt::{Debug, Error, Formatter};
12
use std::ops::{Bound, RangeBounds};
23

34
// Reference: https://en.wikipedia.org/wiki/Fenwick_tree
@@ -56,6 +57,20 @@ impl<T: Clone + std::ops::AddAssign<T>> FenwickTree<T> {
5657
}
5758
}
5859

60+
impl<T: Clone + Debug + std::ops::AddAssign<T>> Debug for FenwickTree<T> {
61+
fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error> {
62+
f.debug_struct("FenwickTree")
63+
.field("n", &self.n)
64+
.field(
65+
"accum",
66+
&(1..=self.n).map(|i| self.accum(i)).collect::<Vec<_>>(),
67+
)
68+
.field("e", &self.e)
69+
.finish()?;
70+
Ok(())
71+
}
72+
}
73+
5974
#[cfg(test)]
6075
mod tests {
6176
use super::*;

0 commit comments

Comments
 (0)