Skip to main content

emf_core_base_rs/fn_caster/
library.rs

1//! Casters for the library api.
2use crate::ffi::library::api;
3use crate::ffi::{CBaseFn, FnId};
4use crate::fn_caster::FnCaster;
5
6/// Caster for [FnId::LibraryRegisterLoader]
7#[derive(Debug)]
8pub struct RegisterLoaderCaster {}
9
10/// Caster for [FnId::LibraryUnregisterLoader]
11#[derive(Debug)]
12pub struct UnregisterLoaderCaster {}
13
14/// Caster for [FnId::LibraryGetLoaderInterface]
15#[derive(Debug)]
16pub struct GetLoaderInterfaceCaster {}
17
18/// Caster for [FnId::LibraryGetLoaderHandleFromType]
19#[derive(Debug)]
20pub struct GetLoaderHandleFromTypeCaster {}
21
22/// Caster for [FnId::LibraryGetLoaderHandleFromLibrary]
23#[derive(Debug)]
24pub struct GetLoaderHandleFromLibraryCaster {}
25
26/// Caster for [FnId::LibraryGetNumLoaders]
27#[derive(Debug)]
28pub struct GetNumLoadersCaster {}
29
30/// Caster for [FnId::LibraryLibraryExists]
31#[derive(Debug)]
32pub struct LibraryExistsCaster {}
33
34/// Caster for [FnId::LibraryTypeExists]
35#[derive(Debug)]
36pub struct TypeExistsCaster {}
37
38/// Caster for [FnId::LibraryGetLibraryTypes]
39#[derive(Debug)]
40pub struct GetLibraryTypesCaster {}
41
42/// Caster for [FnId::LibraryCreateLibraryHandle]
43#[derive(Debug)]
44pub struct CreateLibraryHandleCaster {}
45
46/// Caster for [FnId::LibraryRemoveLibraryHandle]
47#[derive(Debug)]
48pub struct RemoveLibraryHandleCaster {}
49
50/// Caster for [FnId::LibraryLinkLibrary]
51#[derive(Debug)]
52pub struct LinkLibraryCaster {}
53
54/// Caster for [FnId::LibraryGetInternalLibraryHandle]
55#[derive(Debug)]
56pub struct GetInternalLibraryHandleCaster {}
57
58/// Caster for [FnId::LibraryLoad]
59#[derive(Debug)]
60pub struct LoadCaster {}
61
62/// Caster for [FnId::LibraryUnload]
63#[derive(Debug)]
64pub struct UnloadCaster {}
65
66/// Caster for [FnId::LibraryGetDataSymbol]
67#[derive(Debug)]
68pub struct GetDataSymbolCaster {}
69
70/// Caster for [FnId::LibraryGetFunctionSymbol]
71#[derive(Debug)]
72pub struct GetFunctionSymbolCaster {}
73
74transmute_caster!(
75    RegisterLoaderCaster,
76    api::RegisterLoaderFn,
77    FnId::LibraryRegisterLoader
78);
79
80transmute_caster!(
81    UnregisterLoaderCaster,
82    api::UnregisterLoaderFn,
83    FnId::LibraryUnregisterLoader
84);
85
86transmute_caster!(
87    GetLoaderInterfaceCaster,
88    api::GetLoaderInterfaceFn,
89    FnId::LibraryGetLoaderInterface
90);
91
92transmute_caster!(
93    GetLoaderHandleFromTypeCaster,
94    api::GetLoaderHandleFromTypeFn,
95    FnId::LibraryGetLoaderHandleFromType
96);
97
98transmute_caster!(
99    GetLoaderHandleFromLibraryCaster,
100    api::GetLoaderHandleFromLibraryFn,
101    FnId::LibraryGetLoaderHandleFromLibrary
102);
103
104transmute_caster!(
105    GetNumLoadersCaster,
106    api::GetNumLoadersFn,
107    FnId::LibraryGetNumLoaders
108);
109
110transmute_caster!(
111    LibraryExistsCaster,
112    api::LibraryExistsFn,
113    FnId::LibraryLibraryExists
114);
115
116transmute_caster!(TypeExistsCaster, api::TypeExistsFn, FnId::LibraryTypeExists);
117
118transmute_caster!(
119    GetLibraryTypesCaster,
120    api::GetLibraryTypesFn,
121    FnId::LibraryGetLibraryTypes
122);
123
124transmute_caster!(
125    CreateLibraryHandleCaster,
126    api::CreateLibraryHandleFn,
127    FnId::LibraryCreateLibraryHandle
128);
129
130transmute_caster!(
131    RemoveLibraryHandleCaster,
132    api::RemoveLibraryHandleFn,
133    FnId::LibraryRemoveLibraryHandle
134);
135
136transmute_caster!(
137    LinkLibraryCaster,
138    api::LinkLibraryFn,
139    FnId::LibraryLinkLibrary
140);
141
142transmute_caster!(
143    GetInternalLibraryHandleCaster,
144    api::GetInternalLibraryHandleFn,
145    FnId::LibraryGetInternalLibraryHandle
146);
147
148transmute_caster!(LoadCaster, api::LoadFn, FnId::LibraryLoad);
149
150transmute_caster!(UnloadCaster, api::UnloadFn, FnId::LibraryUnload);
151
152transmute_caster!(
153    GetDataSymbolCaster,
154    api::GetDataSymbolFn,
155    FnId::LibraryGetDataSymbol
156);
157
158transmute_caster!(
159    GetFunctionSymbolCaster,
160    api::GetFunctionSymbolFn,
161    FnId::LibraryGetFunctionSymbol
162);