#[repr(C)]pub struct PluginInterface {
pub plugin_ptr: *mut c_void,
pub initialize: unsafe extern "C" fn(*mut c_void, HostCallbacks, PluginMetadataFFI) -> i32,
pub update_ui: unsafe extern "C" fn(*mut c_void, *const c_void, *mut c_void) -> i32,
pub on_mount: unsafe extern "C" fn(*mut c_void) -> i32,
pub on_dispose: unsafe extern "C" fn(*mut c_void) -> i32,
pub on_connect: unsafe extern "C" fn(*mut c_void) -> i32,
pub on_disconnect: unsafe extern "C" fn(*mut c_void) -> i32,
pub handle_message: unsafe extern "C" fn(*mut c_void, *const c_char, *mut *mut c_char) -> i32,
pub get_metadata: unsafe extern "C" fn(*mut c_void) -> PluginMetadataFFI,
pub destroy: unsafe extern "C" fn(*mut c_void),
}Expand description
FFI安全的插件接口 使用C风格的函数指针而不是trait对象
Fields§
§plugin_ptr: *mut c_void§initialize: unsafe extern "C" fn(*mut c_void, HostCallbacks, PluginMetadataFFI) -> i32§update_ui: unsafe extern "C" fn(*mut c_void, *const c_void, *mut c_void) -> i32§on_mount: unsafe extern "C" fn(*mut c_void) -> i32§on_dispose: unsafe extern "C" fn(*mut c_void) -> i32§on_connect: unsafe extern "C" fn(*mut c_void) -> i32§on_disconnect: unsafe extern "C" fn(*mut c_void) -> i32§handle_message: unsafe extern "C" fn(*mut c_void, *const c_char, *mut *mut c_char) -> i32§get_metadata: unsafe extern "C" fn(*mut c_void) -> PluginMetadataFFI§destroy: unsafe extern "C" fn(*mut c_void)Auto Trait Implementations§
impl Freeze for PluginInterface
impl RefUnwindSafe for PluginInterface
impl !Send for PluginInterface
impl !Sync for PluginInterface
impl Unpin for PluginInterface
impl UnsafeUnpin for PluginInterface
impl UnwindSafe for PluginInterface
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more