Use VecDeque for tasks and marked cells

Replace `Vec` with `VecDeque` in `BoardState` marked cells,
`DiggingTask` path,
and `MinerUnit` tasks to enable efficient push/pop operations. Remove
the
`Copy` trait from several structs and enums, adjust derives accordingly,
and
use `as_ref` in `Option<Units>` implementations to avoid consuming the
option.
Update cell rendering to clone widgets and adjust
`CellWidget::get_option_unit`
to return a cloned `Option<Units>`. Add necessary `VecDeque` imports.
This commit is contained in:
GarandPLG committed 2026-05-06 20:01:49 +02:00
1 parent 41020708e4
commit b66c1d8e25
7 files changed
+29 -28

No files matched your search

+1 -1
View File
@@ -38,7 +38,7 @@ impl Widget for BoardWidget<'_> {
.cells
.get(row_idx + self.state.vertical_offset.get_value())
.and_then(|rows| rows.get(col_idx + self.state.horizontal_offset.get_value()))
.map(|cell| cell.render(*cell_area, buf));
.map(|cell| cell.clone().render(*cell_area, buf));
}
}
}