diff --git a/waku/src/events/mod.rs b/waku/src/events/mod.rs index 4f62d13..1d859d1 100644 --- a/waku/src/events/mod.rs +++ b/waku/src/events/mod.rs @@ -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(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| {}); } }