1use winit::{event::WindowEvent, event_loop::ActiveEventLoop};
2
3pub mod common;
4pub(crate) mod running;
6mod starting;
8
9pub enum State {
10 None,
11 Starting(starting::State),
12 Running(running::State),
13}
14
15impl State {
16 pub fn new(event_loop: &ActiveEventLoop) -> Self {
17 Self::Starting(starting::State::new(event_loop))
18 }
19
20 pub fn handle_window_event(&mut self, event_loop: &ActiveEventLoop, event: WindowEvent) {
21 match self {
22 Self::Starting(state) => state.handle_window_event(event_loop, event),
23 Self::Running(state) => state.handle_window_event(event_loop, event),
24 Self::None => unreachable!(),
25 }
26 }
27}