Add debug

This commit is contained in:
Armin Becher 2020-04-05 14:48:43 +02:00
parent ae329ef765
commit 9d77a6d4fd

View file

@ -1,3 +1,4 @@
use std::fmt;
use std::ops::Index; use std::ops::Index;
use std::ops::IndexMut; use std::ops::IndexMut;
@ -202,10 +203,41 @@ impl<T: Clone> IndexMut<usize> for Grid<T> {
} }
} }
impl<T: fmt::Debug> fmt::Debug for Grid<T> {
#[allow(unused_must_use)]
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "[");
if self.cols > 0 {
for (i, _) in self.data.iter().enumerate().step_by(self.cols) {
write!(f, "{:?}", &self.data[i..(i + self.cols)]);
}
}
write!(f, "]")
}
}
#[cfg(test)] #[cfg(test)]
mod test { mod test {
use super::*; use super::*;
#[test]
fn fmt_empty() {
let grid: Grid<u8> = grid![];
assert_eq!(format!("{:?}", grid), "[]");
}
#[test]
fn fmt_row() {
let grid: Grid<u8> = grid![[1, 2, 3]];
assert_eq!(format!("{:?}", grid), "[[1, 2, 3]]");
}
#[test]
fn fmt_grid() {
let grid: Grid<u8> = grid![[1,2,3][4,5,6][7,8,9]];
assert_eq!(format!("{:?}", grid), "[[1, 2, 3][4, 5, 6][7, 8, 9]]");
}
#[test] #[test]
fn clone() { fn clone() {
let grid = grid![[1, 2, 3][4, 5, 6]]; let grid = grid![[1, 2, 3][4, 5, 6]];