use std::ffi::{c_void, c_ulonglong, c_ulong}; use serde_json::Map; pub mod session; pub type NR = super::native::NativeReturnValue; pub type PluginNativeHandlerRegistrar = NativeHandlerRegistrar; pub struct NativeHandlerRegistrar{ handlers: Vec } pub(crate) trait PluginNativeHandler { /// Try to handle the method with the given data. /// /// Returns: None for the message does not be handled by this handler. fn on_message(method: &String, data: &Map) -> Option; /// Try to handle the method with the given data and extra void binary data. /// /// Returns: None for the message does not be handled by this handler. fn on_message_raw(method: &String, data: &Map, raw: *const c_void, raw_len: usize) -> Option; }