pub fn usage_to_vk(value: Usage) -> Option<Vk> {
let result = match value {
k if k == Button::Button(1) .usage() => Vk::MouseLeft ,
k if k == Button::Button(2) .usage() => Vk::MouseRight ,
k if k == Button::Button(3) .usage() => Vk::MouseMiddle ,
k if k == Button::Button(4) .usage() => Vk::MouseX1 ,
k if k == Button::Button(5) .usage() => Vk::MouseX2 ,
k if k == Consumer::ACBack .usage() => Vk::BrowserBack ,
k if k == Consumer::ACBookmarks .usage() => Vk::BrowserFavorites,
k if k == Consumer::ACForward .usage() => Vk::BrowserForward ,
k if k == Consumer::ACHome .usage() => Vk::BrowserHome ,
k if k == Consumer::ACRefresh .usage() => Vk::BrowserRefresh ,
k if k == Consumer::ACSearch .usage() => Vk::BrowserSearch ,
k if k == Consumer::ACStop .usage() => Vk::BrowserStop ,
k if k == Consumer::ALEmailReader .usage() => Vk::StartMail ,
k if k == Consumer::MediaSelection .usage() => Vk::SelectMedia ,
k if k == Consumer::Mute .usage() => Vk::VolumeMute ,
k if k == Consumer::PlayPause .usage() => Vk::MediaPlayPause ,
k if k == Consumer::ScanNextTrack .usage() => Vk::NextTrack ,
k if k == Consumer::ScanPreviousTrack .usage() => Vk::PrevTrack ,
k if k == Consumer::Stop .usage() => Vk::MediaStop ,
k if k == Consumer::VolumeDecrement .usage() => Vk::VolumeDown ,
k if k == Consumer::VolumeIncrement .usage() => Vk::VolumeUp ,
k if k == GenericDesktop::SystemSleep .usage() => Vk::Sleep ,
k if k == KeyboardKeypad::Keyboard0andRightBracket .usage() => Vk::_0 ,
k if k == KeyboardKeypad::Keyboard1andBang .usage() => Vk::_1 ,
k if k == KeyboardKeypad::Keyboard2andAt .usage() => Vk::_2 ,
k if k == KeyboardKeypad::Keyboard3andHash .usage() => Vk::_3 ,
k if k == KeyboardKeypad::Keyboard4andDollar .usage() => Vk::_4 ,
k if k == KeyboardKeypad::Keyboard5andPercent .usage() => Vk::_5 ,
k if k == KeyboardKeypad::Keyboard6andCaret .usage() => Vk::_6 ,
k if k == KeyboardKeypad::Keyboard7andAmpersand .usage() => Vk::_7 ,
k if k == KeyboardKeypad::Keyboard8andStar .usage() => Vk::_8 ,
k if k == KeyboardKeypad::Keyboard9andLeftBracket .usage() => Vk::_9 ,
k if k == KeyboardKeypad::KeyboardA .usage() => Vk::A ,
k if k == KeyboardKeypad::KeyboardApplication .usage() => Vk::Apps ,
k if k == KeyboardKeypad::KeyboardB .usage() => Vk::B ,
k if k == KeyboardKeypad::KeyboardBackslashandPipe .usage() => Vk::Oem5 ,
k if k == KeyboardKeypad::KeyboardC .usage() => Vk::C ,
k if k == KeyboardKeypad::KeyboardCancel .usage() => Vk::Cancel ,
k if k == KeyboardKeypad::KeyboardCapsLock .usage() => Vk::CapsLock ,
k if k == KeyboardKeypad::KeyboardClear .usage() => Vk::Clear ,
k if k == KeyboardKeypad::KeyboardCommaandLessThan .usage() => Vk::Comma ,
k if k == KeyboardKeypad::KeyboardD .usage() => Vk::D ,
k if k == KeyboardKeypad::KeyboardDashandUnderscore .usage() => Vk::Minus ,
k if k == KeyboardKeypad::KeyboardDelete .usage() => Vk::Backspace ,
k if k == KeyboardKeypad::KeyboardDeleteForward .usage() => Vk::Delete ,
k if k == KeyboardKeypad::KeyboardDownArrow .usage() => Vk::DownArrow ,
k if k == KeyboardKeypad::KeyboardE .usage() => Vk::E ,
k if k == KeyboardKeypad::KeyboardEnd .usage() => Vk::End ,
k if k == KeyboardKeypad::KeyboardEqualsandPlus .usage() => Vk::Plus ,
k if k == KeyboardKeypad::KeyboardEscape .usage() => Vk::Escape ,
k if k == KeyboardKeypad::KeyboardExecute .usage() => Vk::Execute ,
k if k == KeyboardKeypad::KeyboardF .usage() => Vk::F ,
k if k == KeyboardKeypad::KeyboardF1 .usage() => Vk::F1 ,
k if k == KeyboardKeypad::KeyboardF10 .usage() => Vk::F10 ,
k if k == KeyboardKeypad::KeyboardF11 .usage() => Vk::F11 ,
k if k == KeyboardKeypad::KeyboardF12 .usage() => Vk::F12 ,
k if k == KeyboardKeypad::KeyboardF13 .usage() => Vk::F13 ,
k if k == KeyboardKeypad::KeyboardF14 .usage() => Vk::F14 ,
k if k == KeyboardKeypad::KeyboardF15 .usage() => Vk::F15 ,
k if k == KeyboardKeypad::KeyboardF16 .usage() => Vk::F16 ,
k if k == KeyboardKeypad::KeyboardF17 .usage() => Vk::F17 ,
k if k == KeyboardKeypad::KeyboardF18 .usage() => Vk::F18 ,
k if k == KeyboardKeypad::KeyboardF19 .usage() => Vk::F19 ,
k if k == KeyboardKeypad::KeyboardF2 .usage() => Vk::F2 ,
k if k == KeyboardKeypad::KeyboardF20 .usage() => Vk::F20 ,
k if k == KeyboardKeypad::KeyboardF21 .usage() => Vk::F21 ,
k if k == KeyboardKeypad::KeyboardF22 .usage() => Vk::F22 ,
k if k == KeyboardKeypad::KeyboardF23 .usage() => Vk::F23 ,
k if k == KeyboardKeypad::KeyboardF24 .usage() => Vk::F24 ,
k if k == KeyboardKeypad::KeyboardF3 .usage() => Vk::F3 ,
k if k == KeyboardKeypad::KeyboardF4 .usage() => Vk::F4 ,
k if k == KeyboardKeypad::KeyboardF5 .usage() => Vk::F5 ,
k if k == KeyboardKeypad::KeyboardF6 .usage() => Vk::F6 ,
k if k == KeyboardKeypad::KeyboardF7 .usage() => Vk::F7 ,
k if k == KeyboardKeypad::KeyboardF8 .usage() => Vk::F8 ,
k if k == KeyboardKeypad::KeyboardF9 .usage() => Vk::F9 ,
k if k == KeyboardKeypad::KeyboardForwardSlashandQuestionMark.usage() => Vk::Oem2 ,
k if k == KeyboardKeypad::KeyboardG .usage() => Vk::G ,
k if k == KeyboardKeypad::KeyboardGraveAccentandTilde .usage() => Vk::Oem3 ,
k if k == KeyboardKeypad::KeyboardH .usage() => Vk::H ,
k if k == KeyboardKeypad::KeyboardHelp .usage() => Vk::Help ,
k if k == KeyboardKeypad::KeyboardHome .usage() => Vk::Home ,
k if k == KeyboardKeypad::KeyboardI .usage() => Vk::I ,
k if k == KeyboardKeypad::KeyboardInsert .usage() => Vk::Insert ,
k if k == KeyboardKeypad::KeyboardJ .usage() => Vk::J ,
k if k == KeyboardKeypad::KeyboardK .usage() => Vk::K ,
k if k == KeyboardKeypad::KeyboardL .usage() => Vk::L ,
k if k == KeyboardKeypad::KeyboardLeftAlt .usage() => Vk::LeftMenu ,
k if k == KeyboardKeypad::KeyboardLeftAposandDouble .usage() => Vk::Oem7 ,
k if k == KeyboardKeypad::KeyboardLeftArrow .usage() => Vk::LeftArrow ,
k if k == KeyboardKeypad::KeyboardLeftBrace .usage() => Vk::Oem4 ,
k if k == KeyboardKeypad::KeyboardLeftControl .usage() => Vk::LeftControl ,
k if k == KeyboardKeypad::KeyboardLeftGUI .usage() => Vk::LeftWin ,
k if k == KeyboardKeypad::KeyboardLeftShift .usage() => Vk::LeftShift ,
k if k == KeyboardKeypad::KeyboardM .usage() => Vk::M ,
k if k == KeyboardKeypad::KeyboardN .usage() => Vk::N ,
k if k == KeyboardKeypad::KeyboardNonUSBackslashandPipe .usage() => Vk::Oem102 ,
k if k == KeyboardKeypad::KeyboardO .usage() => Vk::O ,
k if k == KeyboardKeypad::KeyboardP .usage() => Vk::P ,
k if k == KeyboardKeypad::KeyboardPageDown .usage() => Vk::PageDown ,
k if k == KeyboardKeypad::KeyboardPageUp .usage() => Vk::PageUp ,
k if k == KeyboardKeypad::KeyboardPause .usage() => Vk::Pause ,
k if k == KeyboardKeypad::KeyboardPeriodandGreaterThan .usage() => Vk::Period ,
k if k == KeyboardKeypad::KeyboardPrintScreen .usage() => Vk::PrintScreen ,
k if k == KeyboardKeypad::KeyboardQ .usage() => Vk::Q ,
k if k == KeyboardKeypad::KeyboardR .usage() => Vk::R ,
k if k == KeyboardKeypad::KeyboardReturnEnter .usage() => Vk::Enter ,
k if k == KeyboardKeypad::KeyboardRightAlt .usage() => Vk::RightMenu ,
k if k == KeyboardKeypad::KeyboardRightArrow .usage() => Vk::RightArrow ,
k if k == KeyboardKeypad::KeyboardRightBrace .usage() => Vk::Oem6 ,
k if k == KeyboardKeypad::KeyboardRightControl .usage() => Vk::RightControl ,
k if k == KeyboardKeypad::KeyboardRightGUI .usage() => Vk::RightWin ,
k if k == KeyboardKeypad::KeyboardRightShift .usage() => Vk::RightShift ,
k if k == KeyboardKeypad::KeyboardS .usage() => Vk::S ,
k if k == KeyboardKeypad::KeyboardScrollLock .usage() => Vk::Scroll ,
k if k == KeyboardKeypad::KeyboardSelect .usage() => Vk::Select ,
k if k == KeyboardKeypad::KeyboardSemiColonandColon .usage() => Vk::Oem1 ,
k if k == KeyboardKeypad::KeyboardSpacebar .usage() => Vk::Space ,
k if k == KeyboardKeypad::KeyboardT .usage() => Vk::T ,
k if k == KeyboardKeypad::KeyboardTab .usage() => Vk::Tab ,
k if k == KeyboardKeypad::KeyboardU .usage() => Vk::U ,
k if k == KeyboardKeypad::KeyboardUpArrow .usage() => Vk::UpArrow ,
k if k == KeyboardKeypad::KeyboardV .usage() => Vk::V ,
k if k == KeyboardKeypad::KeyboardW .usage() => Vk::W ,
k if k == KeyboardKeypad::KeyboardX .usage() => Vk::X ,
k if k == KeyboardKeypad::KeyboardY .usage() => Vk::Y ,
k if k == KeyboardKeypad::KeyboardZ .usage() => Vk::Z ,
k if k == KeyboardKeypad::Keypad0andInsert .usage() => Vk::Numpad0 ,
k if k == KeyboardKeypad::Keypad1andEnd .usage() => Vk::Numpad1 ,
k if k == KeyboardKeypad::Keypad2andDownArrow .usage() => Vk::Numpad2 ,
k if k == KeyboardKeypad::Keypad3andPageDn .usage() => Vk::Numpad3 ,
k if k == KeyboardKeypad::Keypad4andLeftArrow .usage() => Vk::Numpad4 ,
k if k == KeyboardKeypad::Keypad5 .usage() => Vk::Numpad5 ,
k if k == KeyboardKeypad::Keypad6andRightArrow .usage() => Vk::Numpad6 ,
k if k == KeyboardKeypad::Keypad7andHome .usage() => Vk::Numpad7 ,
k if k == KeyboardKeypad::Keypad8andUpArrow .usage() => Vk::Numpad8 ,
k if k == KeyboardKeypad::Keypad9andPageUp .usage() => Vk::Numpad9 ,
k if k == KeyboardKeypad::KeypadDash .usage() => Vk::Subtract ,
k if k == KeyboardKeypad::KeypadForwardSlash .usage() => Vk::Divide ,
k if k == KeyboardKeypad::KeypadNumLockandClear .usage() => Vk::Numlock ,
k if k == KeyboardKeypad::KeypadPeriodandDelete .usage() => Vk::Decimal ,
k if k == KeyboardKeypad::KeypadPlus .usage() => Vk::Add ,
k if k == KeyboardKeypad::KeypadStar .usage() => Vk::Multiply ,
_ => return None,
};
Some(result)
}
impl crate::convert::Convert<Usage, Vk> for crate::convert::Converter {
fn convert(value: Usage) -> Option<Vk> {
usage_to_vk(value)
}
}