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
27
28
29
30
use derivative::Derivative;
use winit::Event;
use crate::{
core::{
ecs::{Read, SystemData, World},
shrev::{EventChannel, ReaderId},
EventReader,
},
derive::EventReader,
input::{BindingTypes, InputEvent, StringBindings},
ui::UiEvent,
};
#[derive(Debug, Derivative, EventReader)]
#[derivative(Clone(bound = ""))]
#[reader(StateEventReader)]
pub enum StateEvent<T = StringBindings>
where
T: BindingTypes,
{
Window(Event),
Ui(UiEvent),
Input(InputEvent<T>),
}