diff --git a/src/fenwicktree.rs b/src/fenwicktree.rs index 4804fc4..5fedc13 100644 --- a/src/fenwicktree.rs +++ b/src/fenwicktree.rs @@ -1,3 +1,4 @@ +use std::fmt::{Debug, Error, Formatter}; use std::ops::{Bound, RangeBounds}; // Reference: https://en.wikipedia.org/wiki/Fenwick_tree @@ -56,6 +57,20 @@ impl> FenwickTree { } } +impl> Debug for FenwickTree { + fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error> { + f.debug_struct("FenwickTree") + .field("n", &self.n) + .field( + "accum", + &(1..=self.n).map(|i| self.accum(i)).collect::>(), + ) + .field("e", &self.e) + .finish()?; + Ok(()) + } +} + #[cfg(test)] mod tests { use super::*;