1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
/**
* Result structure for compilation operations
*/
typedef struct RustDCompileResult RustDCompileResult;
/**
* Result structure for general operations
*/
typedef struct RustDResult RustDResult;
/**
* Entity in extracted results
*/
typedef struct RustDEntity RustDEntity;
/**
* List of extracted entities
*/
typedef struct RustDEntityList RustDEntityList;
/**
* Audit trail structure
*/
typedef struct RustDAudit RustDAudit;
/**
* Compile RustD source code to bytecode
*
* # Arguments
* * `source_code` - Pointer to source code string
* * `source_len` - Length of source code
*
* # Returns
* RustDCompileResult with bytecode or error message
*
* # Safety
* The caller must ensure:
* - source_code points to valid UTF-8 data
* - source_len matches the actual length
* - The returned result is freed with rustd_free_compile_result
*/
struct RustDCompileResult ;
/**
* Execute compiled RustD bytecode
*
* # Arguments
* * `bytecode` - Pointer to compiled bytecode
* * `bytecode_len` - Length of bytecode
*
* # Returns
* RustDResult indicating success or failure
*
* # Safety
* The caller must ensure:
* - bytecode points to valid data
* - bytecode_len matches the actual length
*/
struct RustDResult ;
/**
* Extract clinical entities from text
*
* # Arguments
* * `text` - Pointer to text string
* * `text_len` - Length of text
*
* # Returns
* RustDEntityList with extracted entities
*
* # Safety
* The caller must ensure:
* - text points to valid UTF-8 data
* - text_len matches the actual length
* - The returned list is freed with rustd_free_entity_list
*/
struct RustDEntityList ;
/**
* Create a deterministic audit trail
*
* # Arguments
* * `note_id` - Pointer to note identifier
* * `note_id_len` - Length of note_id
* * `entities_json` - Pointer to JSON-serialized entities
* * `entities_json_len` - Length of entities_json
*
* # Returns
* RustDAudit with the audit trail JSON
*/
struct RustDAudit ;
/**
* Verify an audit trail's integrity
*
* # Arguments
* * `audit_json` - Pointer to audit JSON
* * `audit_json_len` - Length of audit JSON
* * `entities_json` - Pointer to entities JSON
* * `entities_json_len` - Length of entities JSON
*
* # Returns
* True if hash matches, false otherwise
*/
bool ;
/**
* Free a compile result
*
* # Safety
* The result must have been created by rustd_compile
*/
void ;
/**
* Free a general result
*/
void ;
/**
* Free an audit trail
*/
void ;
/**
* Free an entity list
*/
void ;
/**
* Get RustD version
*/
const char *;
/* RUSTD_FFI_H */