keyboard-codes 0.3.0

Cross-platform keyboard key code mapping and conversion
Documentation
//! 验证工具示例
//! 运行: cargo run --example validation_tool

// use keyboard_codes::*;
use keyboard_codes::{current_platform, parse_keyboard_input, KeyboardInput};

fn main() {
    println!("=== 验证工具示例 ===\n");

    // 测试往返转换
    let test_inputs = ["a", "ctrl", "esc", "return", "lctrl"];
    let platform = current_platform();
    println!("当前平台: {}", platform);
    println!("往返转换测试:");
    for input in test_inputs {
        println!("\n测试: '{}'", input);

        // 字符串 -> 枚举
        if let Ok(keyboard_input) = parse_keyboard_input(input) {
            println!("  解析: {}", keyboard_input);

            // 枚举 -> 虚拟键码 (使用当前平台)
            let vk_code = keyboard_input.to_code(platform);
            println!("  {} VK: 0x{:02X}", platform, vk_code);

            // 虚拟键码 -> 枚举
            if let Some(round_tripped) = KeyboardInput::from_code(vk_code, platform) {
                println!("  往返: {}", round_tripped);

                if keyboard_input == round_tripped {
                    println!("  ✓ 往返转换成功");
                } else {
                    println!("  ✗ 往返转换失败");
                }
            }
        } else {
            println!("  ✗ 解析失败");
        }
    }

    println!("\n示例完成!");
}