unsafe extern "C" fn diagnostic_handler(
    info: &DiagnosticInfo,
    user: *mut c_void
)