agentmux_cef\reducer/
quit.rs1use crate::state::*;
9
10use super::{DispatchOutput, HostEvent, HostState};
11
12pub(super) fn handle_begin_drain(state: &mut HostState, reason: QuitReason) -> DispatchOutput {
15 if state.quit_state != QuitState::Running {
16 return DispatchOutput::default(); }
18 state.quit_state = QuitState::Draining { reason: reason.clone() };
19 let v = state.bump_version();
20 DispatchOutput {
21 events: vec![HostEvent::QuitDraining { reason, version: v }],
22 ..Default::default()
23 }
24}
25
26pub(super) fn handle_confirm_drained(state: &mut HostState) -> DispatchOutput {
27 if !matches!(state.quit_state, QuitState::Draining { .. }) {
28 return DispatchOutput::default(); }
30 state.quit_state = QuitState::Quit;
31 let v = state.bump_version();
32 DispatchOutput {
33 events: vec![HostEvent::QuitReady { version: v }],
34 ..Default::default()
35 }
36}
37