use core::ffi::c_void;
use polyplug::loader::BundleLoader;
use crate::{NativeConfig, NativeLoader};
#[repr(C)]
pub struct PolyplugNativeConfig {
pub _reserved: u8,
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn polyplug_native_loader_create(
config: *const PolyplugNativeConfig,
) -> *mut c_void {
let _ = config; let loader: NativeLoader = NativeLoader::new(NativeConfig::default());
let trait_obj: Box<dyn BundleLoader> = Box::new(loader);
Box::into_raw(Box::new(trait_obj)) as *mut c_void
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn polyplug_native_loader_free(ptr: *mut c_void) {
if ptr.is_null() {
return;
}
drop(unsafe { Box::<Box<dyn BundleLoader>>::from_raw(ptr as *mut Box<dyn BundleLoader>) });
}