mirror of
https://github.com/logos-messaging/logos-messaging-rust-bindings.git
synced 2026-01-03 06:23:11 +00:00
Nitpick and docs for set_event_callback
This commit is contained in:
parent
62fd97a739
commit
7bce345108
@ -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| {});
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user