#[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 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