#![allow(non_upper_case_globals)] #![allow(non_camel_case_types)] #![allow(non_snake_case)] #![allow(unused)] use std::fmt::{Debug, Display}; pub mod syms { include!(concat!(env!("OUT_DIR"), "/libxkbcommon-keysyms.rs")); } include!(concat!(env!("OUT_DIR"), "/libxkbcommon.rs")); impl From for log::Level { fn from(value: log_level) -> Self { match value { log_level::Debug => log::Level::Debug, log_level::Info => log::Level::Info, log_level::Warning => log::Level::Warn, log_level::Error => log::Level::Error, _ => log::Level::Debug, } } } impl From for log_level { fn from(value: log::Level) -> Self { match value { log::Level::Trace | log::Level::Debug => log_level::Debug, log::Level::Info => log_level::Info, log::Level::Warn => log_level::Warning, log::Level::Error => log_level::Error, } } } impl Display for Keysym { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { let mut buffer = [0_u8; 32]; let written = unsafe { keysym_to_utf8(*self, buffer.as_mut_ptr() as *mut _, buffer.len()) } as usize; let str = std::str::from_utf8(&buffer[0..written]).unwrap_or(""); write!(f, "{str}") } } impl std::fmt::Debug for Keysym { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { let mut buffer = [0_u8; 32]; let written = unsafe { keysym_get_name(*self, buffer.as_mut_ptr() as *mut _, buffer.len()) } as usize; let str = std::str::from_utf8(&buffer[0..written]).unwrap_or(""); write!(f, "{str}") } } impl From for Keysym { fn from(value: u32) -> Self { Self(value) } }