use crate::sys::panda_cb_type;
mod closure;
mod export;
pub use closure::{set_plugin_ref, Callback};
pub use export::CallbackReturn;
mod ppp_closures;
pub use ppp_closures::{
InternalPppClosureCallback, PppCallback, __internal_install_ppp_closure_callback,
};
pub struct PluginHandle;
#[doc(hidden)]
pub struct InternalCallback {
pub cb_type: panda_cb_type,
pub fn_pointer: *const (),
}
impl InternalCallback {
pub fn new(cb_type: panda_cb_type, fn_pointer: *const ()) -> Self {
Self {
cb_type,
fn_pointer,
}
}
}
pub struct UninitCallback(pub fn(&mut PluginHandle));
#[doc(hidden)]
pub struct PPPCallbackSetup(pub fn());
inventory::collect!(InternalCallback);
inventory::collect!(UninitCallback);
inventory::collect!(PPPCallbackSetup);