Refactor out duplicated workspace_set_idx loops

This isn't too bad, but it seems best to avoid the same enumerate loop
in multiple places.
This commit is contained in:
Ian Douglas Scott 2025-03-14 10:50:57 -07:00 committed by Ian Douglas Scott
parent cee8ffd463
commit dd6df7b92a

View file

@ -615,9 +615,13 @@ impl WorkspaceSet {
.count(); .count();
if kept.iter().any(|val| *val == false) { if kept.iter().any(|val| *val == false) {
for (i, workspace) in self.workspaces.iter().enumerate() { self.update_workspace_idxs(state);
workspace_set_idx(state, i as u8 + 1, &workspace.handle); }
} }
fn update_workspace_idxs(&self, state: &mut WorkspaceUpdateGuard<'_, State>) {
for (i, workspace) in self.workspaces.iter().enumerate() {
workspace_set_idx(state, i as u8 + 1, &workspace.handle);
} }
} }
} }
@ -680,9 +684,7 @@ impl Workspaces {
if other_set.workspaces.is_empty() { if other_set.workspaces.is_empty() {
other_set.add_empty_workspace(workspace_state); other_set.add_empty_workspace(workspace_state);
} }
for (i, workspace) in other_set.workspaces.iter_mut().enumerate() { other_set.update_workspace_idxs(workspace_state);
workspace_set_idx(workspace_state, i as u8 + 1, &workspace.handle);
}
other_set.active = other_set other_set.active = other_set
.workspaces .workspaces
.iter() .iter()
@ -703,10 +705,10 @@ impl Workspaces {
if set.workspaces.is_empty() { if set.workspaces.is_empty() {
set.add_empty_workspace(workspace_state); set.add_empty_workspace(workspace_state);
} }
set.update_workspace_idxs(workspace_state);
for (i, workspace) in set.workspaces.iter_mut().enumerate() { for (i, workspace) in set.workspaces.iter_mut().enumerate() {
workspace.set_output(output); workspace.set_output(output);
workspace.refresh(); workspace.refresh();
workspace_set_idx(workspace_state, i as u8 + 1, &workspace.handle);
if i == set.active { if i == set.active {
workspace_state.add_workspace_state(&workspace.handle, WState::Active); workspace_state.add_workspace_state(&workspace.handle, WState::Active);
} }
@ -967,9 +969,7 @@ impl Workspaces {
if keep.iter().any(|val| *val == false) { if keep.iter().any(|val| *val == false) {
for set in self.sets.values_mut() { for set in self.sets.values_mut() {
for (i, workspace) in set.workspaces.iter().enumerate() { set.update_workspace_idxs(workspace_state);
workspace_set_idx(workspace_state, i as u8 + 1, &workspace.handle);
}
} }
} }
} }