use serde::{Deserialize, Serialize};
use serde_repr::{Deserialize_repr, Serialize_repr};
use crate::{input::KeyCode, message::MessageType};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct RegisterAction {
pub id: String,
pub default_key: KeyCode,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct ActionEvent {
name: String,
kind: ActionKind,
}
impl MessageType for ActionEvent {
fn id() -> &'static str {
"builtin:action_event"
}
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize_repr, Deserialize_repr)]
#[repr(u8)]
pub enum ActionKind {
Pressed = 1,
Released = 2,
}