pub type ProtocolWriteData = Option<unsafe extern "C" fn(protocol: *mut c_void, data: *mut c_void) -> bool>;