use std::ffi::c_void;
#[repr(C)]
#[derive(Debug, Clone)]
pub enum FfiMessage {
InputChanged,
TextChanged(String),
Submit,
}
#[repr(C)]
pub struct ModuleVTable {
pub new: unsafe extern "C" fn() -> *mut c_void,
pub drop: unsafe extern "C" fn(state: *mut c_void),
pub update: unsafe extern "C" fn(state: *mut c_void, message: FfiMessage) -> *mut c_void,
pub view: unsafe extern "C" fn(state: *mut c_void) -> *mut c_void,
pub subscription: unsafe extern "C" fn(state: *mut c_void) -> *mut c_void,
}
pub type PluginInitFn = unsafe extern "C" fn() -> *const ModuleVTable;