1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
use glutin::Window;

pub use winit::{ElementState, Event, MouseButton, MouseCursor, MouseScrollDelta, ScanCode,
                TouchPhase, VirtualKeyCode};

pub trait PollEvents {
    type Output: IntoIterator<Item = Event>;

    fn poll_events(&mut self) -> Self::Output;
}

impl PollEvents for Window {
    type Output = Vec<Event>;

    fn poll_events(&mut self) -> Self::Output {
        (&*self).poll_events().collect()
    }
}

pub trait React {
    fn react(&mut self, event: &Event);
}

impl React for () {
    fn react(&mut self, _: &Event) {}
}