use std::mem::MaybeUninit; #[inline] pub fn x11_setup(connection: &xcb::Connection, major_version: u16, minor_version: u16) -> Result<(u16, u16, u8, u8), ()> { let mut actual_major = MaybeUninit::uninit(); let mut actual_minor = MaybeUninit::uninit(); let mut base_event = MaybeUninit::uninit(); let mut base_error = MaybeUninit::uninit(); let ret = unsafe { xkbcommon_sys::xkb_x11_setup_xkb_extension( connection.get_raw_conn() as *mut _, major_version, minor_version, xkbcommon_sys::XKB_X11_SETUP_XKB_EXTENSION_NO_FLAGS, actual_major.as_mut_ptr(), actual_minor.as_mut_ptr(), base_event.as_mut_ptr(), base_error.as_mut_ptr() ) }; if ret != 1 { Err(()) } else { Ok(unsafe { (actual_major.assume_init(), actual_minor.assume_init(), base_event.assume_init(), base_error.assume_init()) }) } }