From 56bef7c98eed4ad6f2006533e726daf65c80f1d2 Mon Sep 17 00:00:00 2001 From: GarandPLG Date: Wed, 8 Apr 2026 23:43:16 +0200 Subject: [PATCH] Refactor CellWidget constructor to accept selected Update `CellWidget::new` to take a `selected` flag and remove the chaining return values from `set_selected` and `set_zoom_level`. The board code now passes the selection state directly during construction. --- src/app/states/skirmish_states/board.rs | 11 +++++------ src/app/widgets/cell.rs | 10 ++++------ 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/src/app/states/skirmish_states/board.rs b/src/app/states/skirmish_states/board.rs index 5d50025..1ce46ab 100644 --- a/src/app/states/skirmish_states/board.rs +++ b/src/app/states/skirmish_states/board.rs @@ -48,12 +48,11 @@ impl BoardState { let mut rows: Vec = Vec::new(); for col in 0..map_width { - rows.push(*CellWidget::new(row, col, zoom_level).set_selected( - if row == focused_cell.get_row() && col == focused_cell.get_col() { - true - } else { - false - }, + rows.push(CellWidget::new( + row, + col, + row == focused_cell.get_row() && col == focused_cell.get_col(), + zoom_level, )); } diff --git a/src/app/widgets/cell.rs b/src/app/widgets/cell.rs index 8cbc3a1..284f62b 100644 --- a/src/app/widgets/cell.rs +++ b/src/app/widgets/cell.rs @@ -25,23 +25,21 @@ pub struct CellWidget { } impl CellWidget { - pub fn new(row: usize, col: usize, zoom_level: ZoomLevel) -> Self { + pub fn new(row: usize, col: usize, selected: bool, zoom_level: ZoomLevel) -> Self { Self { row, col, - selected: false, + selected, zoom_level, } } - pub fn set_selected(&mut self, selected: bool) -> &mut Self { + pub fn set_selected(&mut self, selected: bool) { self.selected = selected; - self } - pub fn set_zoom_level(&mut self, zoom_level: ZoomLevel) -> &mut Self { + pub fn set_zoom_level(&mut self, zoom_level: ZoomLevel) { self.zoom_level = zoom_level; - self } fn col_to_letters(&self) -> String {