use keyboard_codes::{current_platform, KeyParseError, KeyboardInput};
fn main() -> Result<(), KeyParseError> {
let key_a = "A".parse::<KeyboardInput>()?;
let modifier_ctrl = "Control".parse::<KeyboardInput>()?;
let _alias_esc = "esc".parse::<KeyboardInput>()?;
println!("key_a 是普通键: {}", key_a.is_key()); println!("modifier_ctrl 是修饰键: {}", modifier_ctrl.is_modifier());
if let Some(key) = key_a.as_key() {
println!("获取内部 Key: {}", key);
}
let platform = current_platform();
let code_a = key_a.to_code(platform);
println!("A 键在 {} 的键码: 0x{:02X}", platform, code_a);
if let Some(parsed) = KeyboardInput::from_code(code_a, platform) {
println!("从键码反解析: {}", parsed);
}
let inputs = ["Ctrl", "SHIFT", "alt", "F1", "space"];
println!("\n高级解析测试:");
for input in inputs {
match KeyboardInput::parse_with_aliases(input) {
Ok(kb_input) => println!(" '{}' -> {}", input, kb_input),
Err(e) => println!(" '{}' 解析失败: {}", input, e),
}
}
println!("\nDisplay 实现:");
println!("{} + {} = 组合键", modifier_ctrl, key_a);
Ok(())
}