keyboard-codes 0.3.0

Cross-platform keyboard key code mapping and conversion
Documentation
//! 基础用法示例 - 展示核心功能

// use keyboard_codes::*;
use keyboard_codes::{
    current_platform, parse_keyboard_input, parse_shortcut_with_aliases, Key, KeyCodeMapper,
    Platform,
};

fn main() {
    println!("=== 键盘代码库基础用法示例 ===\n");

    // 1. 基本键解析
    println!("1. 基本键解析:");
    let key: Key = "Enter".parse().unwrap();
    println!(
        "   'Enter' -> {:?} -> Windows VK: {:02X}",
        key,
        key.to_code(Platform::Windows)
    );

    // 2. 别名支持
    println!("\n2. 别名支持:");
    let inputs = ["ctrl", "esc", "return", "del", "cmd"];
    for input in inputs {
        if let Ok(ki) = parse_keyboard_input(input) {
            println!(
                "   '{}' -> {} -> VK: {:02X}",
                input,
                ki,
                ki.to_code(Platform::Windows)
            );
        }
    }

    // 3. 快捷方式解析
    println!("\n3. 快捷方式解析:");
    let shortcuts = ["ctrl+c", "shift+tab", "ctrl+alt+del", "cmd+q"];
    for shortcut in shortcuts {
        if let Ok(parsed) = parse_shortcut_with_aliases(shortcut) {
            println!("   '{}' -> {}", shortcut, parsed);
        }
    }

    // 4. 跨平台代码转换
    println!("\n4. 跨平台代码转换:");
    let key = Key::A;
    println!("   Key::A 代码:");
    println!("   - Windows: {:02X}", key.to_code(Platform::Windows));
    println!("   - Linux: {}", key.to_code(Platform::Linux));
    println!("   - macOS: {}", key.to_code(Platform::MacOS));

    // 5. 当前平台检测
    println!("\n5. 当前平台: {}", current_platform());
}