validation_tool/
validation_tool.rs

1//! 验证工具示例
2//! 运行: cargo run --example validation_tool
3
4// use keyboard_codes::*;
5use keyboard_codes::{current_platform, parse_keyboard_input, KeyboardInput};
6
7fn main() {
8    println!("=== 验证工具示例 ===\n");
9
10    // 测试往返转换
11    let test_inputs = ["a", "ctrl", "esc", "return", "lctrl"];
12    let platform = current_platform();
13    println!("当前平台: {}", platform);
14    println!("往返转换测试:");
15    for input in test_inputs {
16        println!("\n测试: '{}'", input);
17
18        // 字符串 -> 枚举
19        if let Ok(keyboard_input) = parse_keyboard_input(input) {
20            println!("  解析: {}", keyboard_input);
21
22            // 枚举 -> 虚拟键码 (使用当前平台)
23            let vk_code = keyboard_input.to_code(platform);
24            println!("  {} VK: 0x{:02X}", platform, vk_code);
25
26            // 虚拟键码 -> 枚举
27            if let Some(round_tripped) = KeyboardInput::from_code(vk_code, platform) {
28                println!("  往返: {}", round_tripped);
29
30                if keyboard_input == round_tripped {
31                    println!("  ✓ 往返转换成功");
32                } else {
33                    println!("  ✗ 往返转换失败");
34                }
35            }
36        } else {
37            println!("  ✗ 解析失败");
38        }
39    }
40
41    println!("\n示例完成!");
42}