plugin_interfaces/
callbacks.rs1use std::ffi::c_char;
2use std::sync::OnceLock;
3
4#[repr(C)]
7pub struct HostCallbacks {
8
9 pub send_to_frontend: extern "C" fn(*const c_char, *const c_char) -> bool,
11
12 pub get_app_config: extern "C" fn(*const c_char) -> *const c_char,
14
15 pub call_other_plugin: extern "C" fn(*const c_char, *const c_char) -> *const c_char,
17}
18
19static HOST_CALLBACKS: OnceLock<HostCallbacks> = OnceLock::new();
21
22pub fn set_host_callbacks(callbacks: HostCallbacks) -> Result<(), HostCallbacks> {
24 HOST_CALLBACKS.set(callbacks)
25}
26
27pub fn get_host_callbacks() -> Option<&'static HostCallbacks> {
29 HOST_CALLBACKS.get()
30}