/// Return a null-terminated UTF-8 name string into `out_name`; return 0 on success.
pub name_fn: Option<unsafe extern "C" fn(user_data: *const std::ffi::c_void, out_name: *mut *mut std::ffi::c_char, out_error: *mut *mut std::ffi::c_char) -> i32>,
/// Return a null-terminated UTF-8 version string into `out_version`; return 0 on success.
pub version_fn: Option<unsafe extern "C" fn(user_data: *const std::ffi::c_void, out_version: *mut *mut std::ffi::c_char, out_error: *mut *mut std::ffi::c_char) -> i32>,
/// Initialise the plugin; return 0 on success, non-zero on failure (error text in `out_error`).
pub initialize_fn: Option<unsafe extern "C" fn(user_data: *const std::ffi::c_void, out_error: *mut *mut std::ffi::c_char) -> i32>,
/// Shut down the plugin; return 0 on success, non-zero on failure (error text in `out_error`).
pub shutdown_fn: Option<unsafe extern "C" fn(user_data: *const std::ffi::c_void, out_error: *mut *mut std::ffi::c_char) -> i32>,