diff options
author | Jesse Luehrs <doy@tozt.net> | 2023-12-11 00:33:35 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2023-12-11 00:33:35 -0500 |
commit | 9b84f5b0d90676aa8e578d367e7870c86a4ebf3b (patch) | |
tree | eb0b15cb28c4f21772f2a8e6400723f1aba9c2f2 /src/grid.rs | |
parent | 681ef52b88c4b53b86fdc5bf45db19271253b108 (diff) | |
download | advent-of-code-9b84f5b0d90676aa8e578d367e7870c86a4ebf3b.tar.gz advent-of-code-9b84f5b0d90676aa8e578d367e7870c86a4ebf3b.zip |
day 11
Diffstat (limited to 'src/grid.rs')
-rw-r--r-- | src/grid.rs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/grid.rs b/src/grid.rs index 040b92b..f299bee 100644 --- a/src/grid.rs +++ b/src/grid.rs @@ -333,6 +333,19 @@ impl<T: Default + Clone + Eq + PartialEq + std::hash::Hash> Grid<T> { .resize_with(cols.0.max(row.cells.len()), T::default); } } + + pub fn insert_row(&mut self, row: Row) { + let mut cells = vec![]; + cells.resize_with(self.cols().0, Default::default); + self.rows.insert(row.0, GridRow { cells }); + } + + pub fn insert_col(&mut self, col: Col) { + for row in self.each_row() { + let row = &mut self[row]; + row.cells.insert(col.0, Default::default()); + } + } } impl<T: Clone + Eq + PartialEq + std::hash::Hash + std::fmt::Display> |