#![doc = include_str!("../README.md")]
#![deny(missing_docs)]
#![deny(rustdoc::broken_intra_doc_links)]
#![doc(html_root_url = "https://docs.smix.dev/smix-input")]
use serde::{Deserialize, Serialize};
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub enum SwipeDirection {
Up,
Down,
Left,
Right,
}
impl SwipeDirection {
#[must_use]
pub fn as_str(self) -> &'static str {
match self {
SwipeDirection::Up => "up",
SwipeDirection::Down => "down",
SwipeDirection::Left => "left",
SwipeDirection::Right => "right",
}
}
}
impl std::fmt::Display for SwipeDirection {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub enum KeyName {
Return,
Delete,
Tab,
Space,
Escape,
ArrowUp,
ArrowDown,
ArrowLeft,
ArrowRight,
Home,
Lock,
VolumeUp,
VolumeDown,
}
impl KeyName {
#[must_use]
pub fn as_str(self) -> &'static str {
match self {
KeyName::Return => "return",
KeyName::Delete => "delete",
KeyName::Tab => "tab",
KeyName::Space => "space",
KeyName::Escape => "escape",
KeyName::ArrowUp => "arrowUp",
KeyName::ArrowDown => "arrowDown",
KeyName::ArrowLeft => "arrowLeft",
KeyName::ArrowRight => "arrowRight",
KeyName::Home => "home",
KeyName::Lock => "lock",
KeyName::VolumeUp => "volumeUp",
KeyName::VolumeDown => "volumeDown",
}
}
}
impl std::fmt::Display for KeyName {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}