1use crate::keys::VirtualKey;
2use std::error::Error;
3use std::fmt::Debug;
4use std::fmt::Display;
5use std::fmt::Formatter;
6use std::fmt::Result;
7
8pub enum HotkeyError {
9 InvalidKey(String),
10 InvalidKeyChar(char),
11 NotAModkey(VirtualKey),
12 RegistrationFailed,
13 UnregistrationFailed,
14}
15
16impl Display for HotkeyError {
17 fn fmt(&self, f: &mut Formatter<'_>) -> Result {
18 match *self {
19 HotkeyError::InvalidKey(ref key) => write!(f, "invalid key name `{}`", key),
20 HotkeyError::InvalidKeyChar(ref ch) => write!(f, "invalid key char `{}`", ch),
21 HotkeyError::NotAModkey(ref vkey) => write!(f, "VKey is not a ModKey {:?}", vkey),
22 HotkeyError::RegistrationFailed => write!(
23 f,
24 "Hotkey registration failed. Hotkey or Id might be in use already"
25 ),
26 HotkeyError::UnregistrationFailed => write!(f, "Hotkey unregistration failed"),
27 }
28 }
29}
30
31impl Debug for HotkeyError {
32 fn fmt(&self, f: &mut Formatter<'_>) -> Result {
33 match *self {
34 HotkeyError::InvalidKey(ref key) => write!(f, "invalid key name `{}`", key),
35 HotkeyError::InvalidKeyChar(ref ch) => write!(f, "invalid key char `{}`", ch),
36 HotkeyError::NotAModkey(ref vkey) => write!(f, "VKey is not a ModKey {:?}", vkey),
37 HotkeyError::RegistrationFailed => write!(
38 f,
39 "Hotkey registration failed. Hotkey or Id might be in use already"
40 ),
41 HotkeyError::UnregistrationFailed => write!(f, "Hotkey unregistration failed"),
42 }
43 }
44}
45
46impl Error for HotkeyError {
47 fn source(&self) -> Option<&(dyn std::error::Error + 'static)> {
48 None
49 }
50}