Nitpick and docs for set_event_callback

This commit is contained in:
Daniel Sanchez Quiros 2022-09-28 20:05:47 +02:00
parent 62fd97a739
commit 7bce345108

View File

@ -44,15 +44,17 @@ impl WakuMessageEvent {
}
}
/// Register callback to act as event handler and receive application signals,
/// which are used to react to asynchronous events in Waku
pub fn waku_set_event_callback<F: FnMut(Signal)>(mut callback: F) {
let mut callback = move |data: *const c_char| {
let mut callback_wrapper = move |data: *const c_char| {
let raw_response = unsafe { CStr::from_ptr(data) }
.to_str()
.expect("Not null ptr");
let data: Signal = serde_json::from_str(raw_response).expect("Parsing signal to succeed");
callback(data);
};
let mut callback_ptr: &mut dyn FnMut(*const c_char) = &mut callback;
let mut callback_ptr: &mut dyn FnMut(*const c_char) = &mut callback_wrapper;
unsafe {
waku_sys::waku_set_event_callback(&mut callback_ptr as *mut &mut _ as *mut std::ffi::c_void)
};
@ -65,6 +67,6 @@ mod tests {
// TODO: how to actually send a signal and check if the callback is run?
#[test]
fn set_event_callback() {
waku_set_event_callback(|signal| {});
waku_set_event_callback(|_signal| {});
}
}