use crate::ffi::library::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 GetLoaderHandleFromLibraryCaster {}
#[derive(Debug)]
pub struct GetNumLoadersCaster {}
#[derive(Debug)]
pub struct LibraryExistsCaster {}
#[derive(Debug)]
pub struct TypeExistsCaster {}
#[derive(Debug)]
pub struct GetLibraryTypesCaster {}
#[derive(Debug)]
pub struct CreateLibraryHandleCaster {}
#[derive(Debug)]
pub struct RemoveLibraryHandleCaster {}
#[derive(Debug)]
pub struct LinkLibraryCaster {}
#[derive(Debug)]
pub struct GetInternalLibraryHandleCaster {}
#[derive(Debug)]
pub struct LoadCaster {}
#[derive(Debug)]
pub struct UnloadCaster {}
#[derive(Debug)]
pub struct GetDataSymbolCaster {}
#[derive(Debug)]
pub struct GetFunctionSymbolCaster {}
transmute_caster!(
RegisterLoaderCaster,
api::RegisterLoaderFn,
FnId::LibraryRegisterLoader
);
transmute_caster!(
UnregisterLoaderCaster,
api::UnregisterLoaderFn,
FnId::LibraryUnregisterLoader
);
transmute_caster!(
GetLoaderInterfaceCaster,
api::GetLoaderInterfaceFn,
FnId::LibraryGetLoaderInterface
);
transmute_caster!(
GetLoaderHandleFromTypeCaster,
api::GetLoaderHandleFromTypeFn,
FnId::LibraryGetLoaderHandleFromType
);
transmute_caster!(
GetLoaderHandleFromLibraryCaster,
api::GetLoaderHandleFromLibraryFn,
FnId::LibraryGetLoaderHandleFromLibrary
);
transmute_caster!(
GetNumLoadersCaster,
api::GetNumLoadersFn,
FnId::LibraryGetNumLoaders
);
transmute_caster!(
LibraryExistsCaster,
api::LibraryExistsFn,
FnId::LibraryLibraryExists
);
transmute_caster!(TypeExistsCaster, api::TypeExistsFn, FnId::LibraryTypeExists);
transmute_caster!(
GetLibraryTypesCaster,
api::GetLibraryTypesFn,
FnId::LibraryGetLibraryTypes
);
transmute_caster!(
CreateLibraryHandleCaster,
api::CreateLibraryHandleFn,
FnId::LibraryCreateLibraryHandle
);
transmute_caster!(
RemoveLibraryHandleCaster,
api::RemoveLibraryHandleFn,
FnId::LibraryRemoveLibraryHandle
);
transmute_caster!(
LinkLibraryCaster,
api::LinkLibraryFn,
FnId::LibraryLinkLibrary
);
transmute_caster!(
GetInternalLibraryHandleCaster,
api::GetInternalLibraryHandleFn,
FnId::LibraryGetInternalLibraryHandle
);
transmute_caster!(LoadCaster, api::LoadFn, FnId::LibraryLoad);
transmute_caster!(UnloadCaster, api::UnloadFn, FnId::LibraryUnload);
transmute_caster!(
GetDataSymbolCaster,
api::GetDataSymbolFn,
FnId::LibraryGetDataSymbol
);
transmute_caster!(
GetFunctionSymbolCaster,
api::GetFunctionSymbolFn,
FnId::LibraryGetFunctionSymbol
);