1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
pub enum Event {
    WindowResize { width: u32, height: u32 },
    WindowCloseRequested,
}

pub trait Window : Drop {
    fn poll_event(&mut self) -> Event;
}

pub trait Backend {
    fn make_window(&mut self) -> Box<dyn Window>;
}