use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct OnKeyDownTrigger {
#[serde(rename = "type")]
pub r#type: Type,
#[serde(rename = "device")]
pub device: Device,
#[serde(rename = "keyCodes")]
pub key_codes: Vec<f64>,
}
impl OnKeyDownTrigger {
pub fn new(r#type: Type, device: Device, key_codes: Vec<f64>) -> OnKeyDownTrigger {
OnKeyDownTrigger {
r#type,
device,
key_codes,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Type {
#[serde(rename = "ON_KEY_DOWN")]
OnKeyDown,
}
impl Default for Type {
fn default() -> Type {
Self::OnKeyDown
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Device {
#[serde(rename = "KEYBOARD")]
Keyboard,
#[serde(rename = "XBOX_ONE")]
XboxOne,
#[serde(rename = "PS4")]
Ps4,
#[serde(rename = "SWITCH_PRO")]
SwitchPro,
#[serde(rename = "UNKNOWN_CONTROLLER")]
UnknownController,
}
impl Default for Device {
fn default() -> Device {
Self::Keyboard
}
}