mouse_types/event.rs
1#[cfg(feature = "serde")]
2use serde::{
3 Deserialize,
4 Serialize,
5};
6use {
7 crate::{
8 button::MouseButton,
9 state::ButtonState,
10 },
11 keyboard_types::Modifiers,
12};
13
14/// Mouse events are issued for all pressed and released mouse buttons.
15#[derive(Clone, Debug, Eq, Hash, PartialEq, PartialOrd, Ord)]
16#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
17pub struct MouseEvent {
18 /// Whether the button is pressed or released.
19 pub state: ButtonState,
20 /// Logical button value.
21 pub button: MouseButton,
22 /// Flags for pressed modifier keys.
23 pub modifiers: Modifiers,
24}