uni-app 0.5.0

native/wasm compatibility layer for window creation, input and filesystem
Documentation
use crate::events::ScanCode;

// source: https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_code_values

pub fn translate_scan_code(code: &str) -> ScanCode {
    match code {
        "Digit1" => ScanCode::Key1,
        "Digit2" => ScanCode::Key2,
        "Digit3" => ScanCode::Key3,
        "Digit4" => ScanCode::Key4,
        "Digit5" => ScanCode::Key5,
        "Digit6" => ScanCode::Key6,
        "Digit7" => ScanCode::Key7,
        "Digit8" => ScanCode::Key8,
        "Digit9" => ScanCode::Key9,
        "Digit0" => ScanCode::Key0,
        "KeyA" => ScanCode::A,
        "KeyB" => ScanCode::B,
        "KeyC" => ScanCode::C,
        "KeyD" => ScanCode::D,
        "KeyE" => ScanCode::E,
        "KeyF" => ScanCode::F,
        "KeyG" => ScanCode::G,
        "KeyH" => ScanCode::H,
        "KeyI" => ScanCode::I,
        "KeyJ" => ScanCode::J,
        "KeyK" => ScanCode::K,
        "KeyL" => ScanCode::L,
        "KeyM" => ScanCode::M,
        "KeyN" => ScanCode::N,
        "KeyO" => ScanCode::O,
        "KeyP" => ScanCode::P,
        "KeyQ" => ScanCode::Q,
        "KeyR" => ScanCode::R,
        "KeyS" => ScanCode::S,
        "KeyT" => ScanCode::T,
        "KeyU" => ScanCode::U,
        "KeyV" => ScanCode::V,
        "KeyW" => ScanCode::W,
        "KeyX" => ScanCode::X,
        "KeyY" => ScanCode::Y,
        "KeyZ" => ScanCode::Z,
        "Escape" => ScanCode::Escape,
        "F1" => ScanCode::F1,
        "F2" => ScanCode::F2,
        "F3" => ScanCode::F3,
        "F4" => ScanCode::F4,
        "F5" => ScanCode::F5,
        "F6" => ScanCode::F6,
        "F7" => ScanCode::F7,
        "F8" => ScanCode::F8,
        "F9" => ScanCode::F9,
        "F10" => ScanCode::F10,
        "F11" => ScanCode::F11,
        "F12" => ScanCode::F12,
        "F13" => ScanCode::F13,
        "F14" => ScanCode::F14,
        "F15" => ScanCode::F15,
        "F16" => ScanCode::F16,
        "F17" => ScanCode::F17,
        "F18" => ScanCode::F18,
        "F19" => ScanCode::F19,
        "F20" => ScanCode::F20,
        "F21" => ScanCode::F21,
        "F22" => ScanCode::F22,
        "F23" => ScanCode::F23,
        "F24" => ScanCode::F24,
        "ScrollLock" => ScanCode::ScrollLock,
        "Pause" => ScanCode::Pause,
        "Insert" => ScanCode::Insert,
        "Home" => ScanCode::Home,
        "Delete" => ScanCode::Delete,
        "End" => ScanCode::End,
        "PageDown" => ScanCode::PageDown,
        "PageUp" => ScanCode::PageUp,
        "ArrowLeft" => ScanCode::Left,
        "ArrowUp" => ScanCode::Up,
        "ArrowRight" => ScanCode::Right,
        "ArrowDown" => ScanCode::Down,
        "Backspace" => ScanCode::Backspace,
        "Enter" => ScanCode::Enter,
        "Space" => ScanCode::Space,
        "NumLock" => ScanCode::Numlock,
        "Numpad0" => ScanCode::Numpad0,
        "Numpad1" => ScanCode::Numpad1,
        "Numpad2" => ScanCode::Numpad2,
        "Numpad3" => ScanCode::Numpad3,
        "Numpad4" => ScanCode::Numpad4,
        "Numpad5" => ScanCode::Numpad5,
        "Numpad6" => ScanCode::Numpad6,
        "Numpad7" => ScanCode::Numpad7,
        "Numpad8" => ScanCode::Numpad8,
        "Numpad9" => ScanCode::Numpad9,
        "NumpadAdd" => ScanCode::NumpadAdd,
        "Apostrophe" => ScanCode::Apostrophe,
        "Quote" => ScanCode::Apostrophe,
        "Star" => ScanCode::Asterisk,
        "Backslash" => ScanCode::Backslash,
        "CapsLock" => ScanCode::CapsLock,
        "Comma" => ScanCode::Comma,
        "NumpadDecimal" => ScanCode::NumpadDecimal,
        "NumpadDivide" => ScanCode::NumpadDivide,
        "Equal" => ScanCode::Equal,
        "Backquote" => ScanCode::Backquote,
        "AltLeft" => ScanCode::LAlt,
        "BracketLeft" => ScanCode::LBracket,
        "ControlLeft" => ScanCode::LCtrl,
        "ShiftLeft" => ScanCode::LShift,
        "Minus" => ScanCode::Minus,
        "NumpadMultiply" => ScanCode::NumpadMultiply,
        "NumpadComma" => ScanCode::NumpadComma,
        "NumpadEnter" => ScanCode::NumpadEnter,
        "NumpadEqual" => ScanCode::NumpadEqual,
        "Period" => ScanCode::Period,
        "Plus" => ScanCode::Plus,
        "AltRight" => ScanCode::RAlt,
        "BracketRight" => ScanCode::RBracket,
        "ControlRight" => ScanCode::RCtrl,
        "ShiftRight" => ScanCode::RShift,
        "Semicolon" => ScanCode::Semicolon,
        "Slash" => ScanCode::Slash,
        "NumpadSubtract" => ScanCode::NumpadSubtract,
        "Tab" => ScanCode::Tab,
        "Caret" => ScanCode::Caret,
        "Copy" => ScanCode::Copy,
        "Paste" => ScanCode::Paste,
        "Cut" => ScanCode::Cut,
        _ => ScanCode::Unknown,
    }
}