feat(teipe): initial commit
This commit is contained in:
61
libxkbcommonrs/src/ffi.rs
Normal file
61
libxkbcommonrs/src/ffi.rs
Normal file
@@ -0,0 +1,61 @@
|
||||
#![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<log_level> 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<log::Level> 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("<invalid>");
|
||||
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("<invalid>");
|
||||
write!(f, "{str}")
|
||||
}
|
||||
}
|
||||
|
||||
impl From<u32> for Keysym {
|
||||
fn from(value: u32) -> Self {
|
||||
Self(value)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user