//! C++ functions. use maraiah::ffi; mod static_ffi { use maraiah::ffi; pub type QPainter = ffi::c_void; extern "C" { pub fn critical_msg(title: ffi::NT, msg: ffi::NT); pub fn paint_point(paint: *mut QPainter, x: ffi::c_int, y: ffi::c_int); } } pub use static_ffi::QPainter; pub fn paint_point(paint: *mut QPainter, x: i32, y: i32) { unsafe { static_ffi::paint_point(paint, x.into(), y.into()); } } pub fn critical_msg(title: T, msg: U) where T: ToString, U: ToString { let title = ffi::CString::new(title.to_string()).unwrap(); let msg = ffi::CString::new(msg.to_string()).unwrap(); unsafe { static_ffi::critical_msg(title.as_ptr(), msg.as_ptr()); } } // EOF