use crate::ffi::module::api;
use crate::ffi::{CBaseFn, FnId};
use crate::fn_caster::FnCaster;
#[derive(Debug)]
pub struct RegisterLoaderCaster {}
#[derive(Debug)]
pub struct UnregisterLoaderCaster {}
#[derive(Debug)]
pub struct GetLoaderInterfaceCaster {}
#[derive(Debug)]
pub struct GetLoaderHandleFromTypeCaster {}
#[derive(Debug)]
pub struct GetLoaderHandleFromModuleCaster {}
#[derive(Debug)]
pub struct GetNumModulesCaster {}
#[derive(Debug)]
pub struct GetNumLoadersCaster {}
#[derive(Debug)]
pub struct GetNumExportedInterfacesCaster {}
#[derive(Debug)]
pub struct ModuleExistsCaster {}
#[derive(Debug)]
pub struct TypeExistsCaster {}
#[derive(Debug)]
pub struct ExportedInterfaceExistsCaster {}
#[derive(Debug)]
pub struct GetModulesCaster {}
#[derive(Debug)]
pub struct GetModuleTypesCaster {}
#[derive(Debug)]
pub struct GetExportedInterfacesCaster {}
#[derive(Debug)]
pub struct GetExportedInterfaceHandleCaster {}
#[derive(Debug)]
pub struct CreateModuleHandleCaster {}
#[derive(Debug)]
pub struct RemoveModuleHandleCaster {}
#[derive(Debug)]
pub struct LinkModuleCaster {}
#[derive(Debug)]
pub struct GetInternalModuleHandleCaster {}
#[derive(Debug)]
pub struct AddModuleCaster {}
#[derive(Debug)]
pub struct RemoveModuleCaster {}
#[derive(Debug)]
pub struct LoadCaster {}
#[derive(Debug)]
pub struct UnloadCaster {}
#[derive(Debug)]
pub struct InitializeCaster {}
#[derive(Debug)]
pub struct TerminateCaster {}
#[derive(Debug)]
pub struct AddDependencyCaster {}
#[derive(Debug)]
pub struct RemoveDependencyCaster {}
#[derive(Debug)]
pub struct ExportInterfaceCaster {}
#[derive(Debug)]
pub struct GetLoadDependenciesCaster {}
#[derive(Debug)]
pub struct GetRuntimeDependenciesCaster {}
#[derive(Debug)]
pub struct GetExportableInterfacesCaster {}
#[derive(Debug)]
pub struct FetchStatusCaster {}
#[derive(Debug)]
pub struct GetModulePathCaster {}
#[derive(Debug)]
pub struct GetModuleInfoCaster {}
#[derive(Debug)]
pub struct GetInterfaceCaster {}
transmute_caster!(
RegisterLoaderCaster,
api::RegisterLoaderFn,
FnId::ModuleRegisterLoader
);
transmute_caster!(
UnregisterLoaderCaster,
api::UnregisterLoaderFn,
FnId::ModuleUnregisterLoader
);
transmute_caster!(
GetLoaderInterfaceCaster,
api::GetLoaderInterfaceFn,
FnId::ModuleGetLoaderInterface
);
transmute_caster!(
GetLoaderHandleFromTypeCaster,
api::GetLoaderHandleFromTypeFn,
FnId::ModuleGetLoaderHandleFromType
);
transmute_caster!(
GetLoaderHandleFromModuleCaster,
api::GetLoaderHandleFromModuleFn,
FnId::ModuleGetLoaderHandleFromModule
);
transmute_caster!(
GetNumModulesCaster,
api::GetNumModulesFn,
FnId::ModuleGetNumModules
);
transmute_caster!(
GetNumLoadersCaster,
api::GetNumLoadersFn,
FnId::ModuleGetNumLoaders
);
transmute_caster!(
GetNumExportedInterfacesCaster,
api::GetNumExportedInterfacesFn,
FnId::ModuleGetNumExportedInterfaces
);
transmute_caster!(
ModuleExistsCaster,
api::ModuleExistsFn,
FnId::ModuleModuleExists
);
transmute_caster!(TypeExistsCaster, api::TypeExistsFn, FnId::ModuleTypeExists);
transmute_caster!(
ExportedInterfaceExistsCaster,
api::ExportedInterfaceExistsFn,
FnId::ModuleExportedInterfaceExists
);
transmute_caster!(GetModulesCaster, api::GetModulesFn, FnId::ModuleGetModules);
transmute_caster!(
GetModuleTypesCaster,
api::GetModuleTypesFn,
FnId::ModuleGetModuleTypes
);
transmute_caster!(
GetExportedInterfacesCaster,
api::GetExportedInterfacesFn,
FnId::ModuleGetExportedInterfaces
);
transmute_caster!(
GetExportedInterfaceHandleCaster,
api::GetExportedInterfaceHandleFn,
FnId::ModuleGetExportedInterfaceHandle
);
transmute_caster!(
CreateModuleHandleCaster,
api::CreateModuleHandleFn,
FnId::ModuleCreateModuleHandle
);
transmute_caster!(
RemoveModuleHandleCaster,
api::RemoveModuleHandleFn,
FnId::ModuleRemoveModuleHandle
);
transmute_caster!(LinkModuleCaster, api::LinkModuleFn, FnId::ModuleLinkModule);
transmute_caster!(
GetInternalModuleHandleCaster,
api::GetInternalModuleHandleFn,
FnId::ModuleGetInternalModuleHandle
);
transmute_caster!(AddModuleCaster, api::AddModuleFn, FnId::ModuleAddModule);
transmute_caster!(
RemoveModuleCaster,
api::RemoveModuleFn,
FnId::ModuleRemoveModule
);
transmute_caster!(LoadCaster, api::LoadFn, FnId::ModuleLoad);
transmute_caster!(UnloadCaster, api::UnloadFn, FnId::ModuleUnload);
transmute_caster!(InitializeCaster, api::InitializeFn, FnId::ModuleInitialize);
transmute_caster!(TerminateCaster, api::TerminateFn, FnId::ModuleTerminate);
transmute_caster!(
AddDependencyCaster,
api::AddDependencyFn,
FnId::ModuleAddDependency
);
transmute_caster!(
RemoveDependencyCaster,
api::RemoveDependencyFn,
FnId::ModuleRemoveDependency
);
transmute_caster!(
ExportInterfaceCaster,
api::ExportInterfaceFn,
FnId::ModuleExportInterface
);
transmute_caster!(
GetLoadDependenciesCaster,
api::GetLoadDependenciesFn,
FnId::ModuleGetLoadDependencies
);
transmute_caster!(
GetRuntimeDependenciesCaster,
api::GetRuntimeDependenciesFn,
FnId::ModuleGetRuntimeDependencies
);
transmute_caster!(
GetExportableInterfacesCaster,
api::GetExportableInterfacesFn,
FnId::ModuleGetExportableInterfaces
);
transmute_caster!(
FetchStatusCaster,
api::FetchStatusFn,
FnId::ModuleFetchStatus
);
transmute_caster!(
GetModulePathCaster,
api::GetModulePathFn,
FnId::ModuleGetModulePath
);
transmute_caster!(
GetModuleInfoCaster,
api::GetModuleInfoFn,
FnId::ModuleGetModuleInfo
);
transmute_caster!(
GetInterfaceCaster,
api::GetInterfaceFn,
FnId::ModuleGetInterface
);