DETLEF C SDK
Native embedding and package authoring
Loading...
Searching...
No Matches
detlef.h
1/* Experimental DETLEF ABI, version 4. MIT licensed.
2 * Setup and API navigation: ../../../docs/c/index.md
3 */
4#ifndef DETLEF_DB1E2997_E00E_4A25_9C4D_34D3080D7039
5#define DETLEF_DB1E2997_E00E_4A25_9C4D_34D3080D7039
6
7#include <stddef.h>
8#include <stdint.h>
9
10#ifdef __cplusplus
11extern "C" {
12#endif
13
14/* ABI storage is fixed-width in C and C++. Doxygen sees the corresponding
15 * enums instead so links from signatures lead directly to their values.
16 * DETLEF_DOXYGEN is reserved for documentation builds. */
17#ifndef DETLEF_DOXYGEN
18typedef int32_t DetlefStatus;
19typedef uint32_t DetlefBool;
20typedef uint32_t DetlefHandleKind;
21typedef uint32_t DetlefDescriptorKind;
22typedef uint32_t DetlefTypeKind;
23typedef uint32_t DetlefPackageSection;
24typedef uint32_t DetlefExpressionKind;
25typedef uint32_t DetlefTypeRefKind;
26#endif
27
28/* Runtime ownership and context access */
29
36
42
48
54#ifdef DETLEF_DOXYGEN
56#else
57enum DetlefStatusCode {
58#endif
61
64
67
70
73};
74
75/* Text, handles, and source locations */
76
83typedef struct DetlefText {
85 uint8_t *data;
86
88 size_t len;
90
98typedef struct DetlefSlice {
100 const uint8_t *data;
101
103 size_t len;
105
114typedef uint64_t DetlefHandle;
115
129
136typedef struct DetlefSpan {
138 size_t start;
139
141 size_t end;
143
150#ifdef DETLEF_DOXYGEN
152#else
153enum DetlefHandleKindCode {
154#endif
157
160
163
166
169
172
175
178
181
184
187
190
193
196
199};
200
207#ifdef DETLEF_DOXYGEN
221
230#ifdef DETLEF_DOXYGEN
232#else
233enum DetlefBoolCode {
234#endif
237
240};
241
247#ifdef DETLEF_DOXYGEN
249#else
250enum DetlefTypeKindCode {
251#endif
254
257
260
263
266
269};
270
276#ifdef DETLEF_DOXYGEN
278#else
279enum DetlefPackageSectionCode {
280#endif
283
286
289
292};
293
299#ifdef DETLEF_DOXYGEN
301#else
302enum DetlefExpressionKindCode {
303#endif
306
309
312
315
318
321};
322
328#ifdef DETLEF_DOXYGEN
330#else
331enum DetlefTypeRefKindCode {
332#endif
335
338
341};
342
343/* Callback types */
344
351 void *user_data,
352 DetlefAccess *access
353);
354
364 void *user_data,
365 DetlefAccess *access,
366 DetlefHandle *result
367);
368
377 void *user_data,
378 DetlefFunctionAccess *access,
379 DetlefHandle *result
380);
381
387typedef void (*DetlefOutput)(
388 void *user_data,
389 const uint8_t *text,
390 size_t len
391);
392
400 void *user_data,
401 DetlefSlice *line,
402 DetlefBool *present
403);
404
405/* Runtime lifecycle */
406
414uint32_t detlef_abi_version(void);
415
424
434
444
459 DetlefRuntime *runtime,
460 DetlefAccessCallback callback,
461 void *user_data
462);
463
475
476#if !defined(__wasm32__)
500#endif
501
502/* Outputs are owned handles/text unless documented otherwise.
503 * Per-operation ownership requirements are documented below.
504 */
505/* BEGIN CONTEXT API */
506
507/* Native Function operations */
508
521
536
550
564
578
593
608
623
636
649
662
676
690
705
725
738
754
769
783
800
819
836
852
867
882
897
910
924
939
952
969
981
996
1009
1023
1041
1042/* Value operations */
1043
1056
1071
1085
1099
1112
1125
1139
1153
1165
1177
1189
1202
1216
1231
1252
1269
1270/* Context operations */
1271
1288DetlefStatus detlef_with_protected_values(DetlefAccess *a, const DetlefHandle *handles, size_t count, DetlefAccessCallback callback, void *data);
1289
1303
1318
1332
1345
1362
1380
1393
1409
1426
1440
1452
1468
1480
1493
1509
1524
1540
1555
1571
1589
1605
1606/* Type operations */
1607
1622
1637
1652
1664
1677
1693
1710
1726
1738
1755
1756/* Object operations */
1757
1774DetlefStatus detlef_array_create(DetlefAccess *a, DetlefHandle type_handle, const DetlefHandle *items, size_t count, DetlefHandle *out);
1775
1787
1803
1818
1832
1848
1864DetlefStatus detlef_record_create(DetlefAccess *a, DetlefHandle type_handle, const DetlefHandle *items, size_t count, DetlefHandle *out);
1865
1881
1897
1898/* Callback operations */
1899
1918DetlefStatus detlef_stdlib_install(DetlefAccess *a, DetlefOutput output_callback, void *output_data, DetlefLineInput input_callback, void *input_data);
1919
1931
1946
1961
1974
1988
2002
2015
2028
2042
2059
2081DetlefStatus detlef_register_function(DetlefAccess *a, DetlefSlice input, const DetlefNamed *params, size_t count, const DetlefNamed *vararg, DetlefFunctionCallback callback, void *data);
2082
2099
2121
2122/* Package operations */
2123
2140DetlefStatus detlef_package_function_callback(DetlefAccess *a, DetlefHandle handle, size_t index, DetlefFunctionCallback *callback_out, void * *data_out);
2141
2158DetlefStatus detlef_package_control_callback(DetlefAccess *a, DetlefHandle handle, size_t index, DetlefCallback *callback_out, void * *data_out);
2159
2173
2188
2201
2214
2231
2246
2259
2274
2291
2313DetlefStatus detlef_package_function(DetlefAccess *a, DetlefHandle handle, DetlefSlice input, const DetlefNamed *params, size_t count, const DetlefNamed *vararg, DetlefFunctionCallback callback, void *data);
2314
2332
2345
2358
2373
2388
2407
2427DetlefStatus detlef_package_member(DetlefAccess *a, DetlefHandle handle, DetlefPackageSection kind, size_t index, size_t member, DetlefText *name_out, DetlefHandle *type_out);
2428
2429/* END CONTEXT API */
2430
2431#ifdef __cplusplus
2432}
2433#endif
2434#endif /* DETLEF_DF9F5A8C_788C_4B37_94E8_0C6D743A9E24 */
DetlefStatus detlef_callback_error(DetlefAccess *a, DetlefSlice message, DetlefSpan span, DetlefBool has_span)
DetlefStatus detlef_argument_count(DetlefAccess *a, size_t *out)
DetlefStatus detlef_register_binding(DetlefAccess *a, DetlefSlice input, DetlefHandle handle)
DetlefStatus detlef_argument_identifier(DetlefAccess *a, size_t index, DetlefText *out)
DetlefStatus detlef_register_function(DetlefAccess *a, DetlefSlice input, const DetlefNamed *params, size_t count, const DetlefNamed *vararg, DetlefFunctionCallback callback, void *data)
DetlefStatus detlef_call_span(DetlefAccess *a, DetlefSpan *out)
DetlefStatus detlef_stdlib_install(DetlefAccess *a, DetlefOutput output_callback, void *output_data, DetlefLineInput input_callback, void *input_data)
DetlefStatus detlef_argument_expression(DetlefAccess *a, size_t index, DetlefHandle *out)
DetlefStatus detlef_argument_value(DetlefAccess *a, size_t index, DetlefHandle *out)
DetlefStatus detlef_register_control(DetlefAccess *a, DetlefSlice input, DetlefCallback callback, void *data)
DetlefStatus detlef_argument_boolean(DetlefAccess *a, size_t index, DetlefBool *out)
DetlefStatus detlef_access_error(DetlefAccess *a, DetlefText *out, DetlefSpan *span, DetlefBool *has_span)
DetlefStatus detlef_argument_span(DetlefAccess *a, size_t index, DetlefSpan *out)
DetlefStatus detlef_register_script_function(DetlefAccess *a, DetlefSlice input, const DetlefNamed *params, size_t count, const DetlefNamed *vararg, DetlefHandle body, DetlefHandle env)
DetlefStatus detlef_argument_evaluate(DetlefAccess *a, size_t index, DetlefHandle *out)
DetlefStatus(* DetlefLineInput)(void *user_data, DetlefSlice *line, DetlefBool *present)
Definition detlef.h:399
DetlefBool
Definition detlef.h:231
DetlefStatus(* DetlefCallback)(void *user_data, DetlefAccess *access, DetlefHandle *result)
Definition detlef.h:363
struct DetlefRuntime DetlefRuntime
Definition detlef.h:35
struct DetlefFunctionAccess DetlefFunctionAccess
Definition detlef.h:47
DetlefPackageSection
Definition detlef.h:277
DetlefStatus
Definition detlef.h:55
struct DetlefAccess DetlefAccess
Definition detlef.h:41
DetlefDescriptorKind
Definition detlef.h:208
DetlefStatus(* DetlefAccessCallback)(void *user_data, DetlefAccess *access)
Definition detlef.h:350
uint64_t DetlefHandle
Definition detlef.h:114
DetlefExpressionKind
Definition detlef.h:300
DetlefTypeKind
Definition detlef.h:248
DetlefStatus(* DetlefFunctionCallback)(void *user_data, DetlefFunctionAccess *access, DetlefHandle *result)
Definition detlef.h:376
void(* DetlefOutput)(void *user_data, const uint8_t *text, size_t len)
Definition detlef.h:387
DetlefTypeRefKind
Definition detlef.h:329
DetlefHandleKind
Definition detlef.h:151
@ DETLEF_FALSE
Definition detlef.h:236
@ DETLEF_TRUE
Definition detlef.h:239
@ DETLEF_PACKAGE_BINDINGS
Definition detlef.h:285
@ DETLEF_PACKAGE_CONTROLS
Definition detlef.h:291
@ DETLEF_PACKAGE_RECORDS
Definition detlef.h:282
@ DETLEF_PACKAGE_FUNCTIONS
Definition detlef.h:288
@ DETLEF_OK
Definition detlef.h:60
@ DETLEF_BUSY
Definition detlef.h:72
@ DETLEF_ERROR
Definition detlef.h:63
@ DETLEF_PANIC
Definition detlef.h:69
@ DETLEF_INVALID_ARGUMENT
Definition detlef.h:66
@ DETLEF_DESCRIPTOR_VARARG
Definition detlef.h:216
@ DETLEF_DESCRIPTOR_FIELD
Definition detlef.h:219
@ DETLEF_DESCRIPTOR_PARAMETER
Definition detlef.h:213
@ DETLEF_EXPR_STRING
Definition detlef.h:311
@ DETLEF_EXPR_BLOCK
Definition detlef.h:320
@ DETLEF_EXPR_CALL
Definition detlef.h:317
@ DETLEF_EXPR_INTEGER
Definition detlef.h:305
@ DETLEF_EXPR_FLOAT
Definition detlef.h:308
@ DETLEF_EXPR_IDENTIFIER
Definition detlef.h:314
@ DETLEF_TYPE_OPTIONAL
Definition detlef.h:259
@ DETLEF_TYPE_RECORD_UNDEFINED
Definition detlef.h:265
@ DETLEF_TYPE_ARRAY
Definition detlef.h:262
@ DETLEF_TYPE_PRIMITIVE
Definition detlef.h:253
@ DETLEF_TYPE_NONE
Definition detlef.h:256
@ DETLEF_TYPE_RECORD_DEFINED
Definition detlef.h:268
@ DETLEF_REF_OPTIONAL
Definition detlef.h:340
@ DETLEF_REF_ARRAY
Definition detlef.h:337
@ DETLEF_REF_NAMED
Definition detlef.h:334
@ DETLEF_PACKAGE
Definition detlef.h:195
@ DETLEF_PARAMETER
Definition detlef.h:180
@ DETLEF_ENVIRONMENT
Definition detlef.h:192
@ DETLEF_TYPE_REF
Definition detlef.h:198
@ DETLEF_EXPRESSION
Definition detlef.h:189
@ DETLEF_OBJECT
Definition detlef.h:174
@ DETLEF_BOOLEAN
Definition detlef.h:168
@ DETLEF_NONE
Definition detlef.h:159
@ DETLEF_VARARG
Definition detlef.h:183
@ DETLEF_INTEGER
Definition detlef.h:162
@ DETLEF_TYPE
Definition detlef.h:177
@ DETLEF_FIELD
Definition detlef.h:186
@ DETLEF_FLOAT
Definition detlef.h:165
@ DETLEF_STRING
Definition detlef.h:171
@ DETLEF_VOID
Definition detlef.h:156
DetlefStatus detlef_expression_span(DetlefAccess *a, DetlefHandle handle, DetlefSpan *out)
DetlefStatus detlef_expression_kind(DetlefAccess *a, DetlefHandle handle, DetlefExpressionKind *out)
DetlefStatus detlef_expression_with_variables(DetlefAccess *a, DetlefHandle expr, const DetlefNamed *bindings, size_t count, DetlefHandle *out)
DetlefStatus detlef_expression_child(DetlefAccess *a, DetlefHandle handle, size_t index, DetlefHandle *out)
DetlefStatus detlef_expression_call(DetlefAccess *a, DetlefHandle callee, const DetlefHandle *arguments, size_t count, DetlefSpan span, DetlefHandle *out)
DetlefStatus detlef_expression_evaluate(DetlefAccess *a, DetlefHandle expr, DetlefBool require_value, DetlefHandle *out)
DetlefStatus detlef_environment_evaluate(DetlefAccess *a, DetlefHandle env, DetlefHandle expr, DetlefHandle *out)
DetlefStatus detlef_expression_identifier(DetlefAccess *a, DetlefSlice input, DetlefSpan span, DetlefHandle *out)
DetlefStatus detlef_environment_capture(DetlefAccess *a, DetlefHandle *out)
DetlefStatus detlef_expression_block(DetlefAccess *a, const DetlefHandle *expressions, size_t count, DetlefSpan span, DetlefHandle *out)
DetlefStatus detlef_expression_literal(DetlefAccess *a, DetlefHandle handle, DetlefSpan span, DetlefHandle *out)
DetlefStatus detlef_expression_literal_value(DetlefAccess *a, DetlefHandle handle, DetlefHandle *out)
DetlefStatus detlef_expression_text(DetlefAccess *a, DetlefHandle handle, DetlefText *out)
DetlefStatus detlef_expression_child_count(DetlefAccess *a, DetlefHandle handle, size_t *out)
DetlefStatus detlef_expression_parse(DetlefAccess *a, DetlefSlice source, DetlefHandle *out)
DetlefStatus detlef_function_type_of(DetlefFunctionAccess *a, DetlefHandle handle, DetlefHandle *out)
DetlefStatus detlef_function_type_name(DetlefFunctionAccess *a, DetlefHandle handle, DetlefText *out)
DetlefStatus detlef_function_type_lookup(DetlefFunctionAccess *a, DetlefSlice input, DetlefHandle *out)
DetlefStatus detlef_function_handle_kind(DetlefFunctionAccess *a, DetlefHandle handle, DetlefHandleKind *out)
DetlefStatus detlef_function_value_float(DetlefFunctionAccess *a, double value, DetlefHandle *out)
DetlefStatus detlef_function_record_set(DetlefFunctionAccess *a, DetlefHandle handle, DetlefSlice input, DetlefHandle new_value)
DetlefStatus detlef_function_access_error(DetlefFunctionAccess *a, DetlefText *out, DetlefSpan *span, DetlefBool *has_span)
DetlefStatus detlef_function_value_to_string(DetlefFunctionAccess *a, DetlefHandle handle, DetlefText *out)
DetlefStatus detlef_function_handle_release(DetlefFunctionAccess *a, DetlefHandle handle)
DetlefStatus detlef_function_type_optional(DetlefFunctionAccess *a, DetlefHandle inner, DetlefHandle *out)
DetlefStatus detlef_function_array_push(DetlefFunctionAccess *a, DetlefHandle handle, DetlefHandle new_value)
DetlefStatus detlef_function_value_integer(DetlefFunctionAccess *a, int64_t value, DetlefHandle *out)
DetlefStatus detlef_function_array_set(DetlefFunctionAccess *a, DetlefHandle handle, size_t index, DetlefHandle new_value)
DetlefStatus detlef_function_array_length(DetlefFunctionAccess *a, DetlefHandle handle, size_t *out)
DetlefStatus detlef_function_value_get_boolean(DetlefFunctionAccess *a, DetlefHandle handle, DetlefBool *out)
DetlefStatus detlef_function_type_kind(DetlefFunctionAccess *a, DetlefHandle handle, DetlefTypeKind *out)
DetlefStatus detlef_function_argument_value(DetlefFunctionAccess *a, size_t index, DetlefHandle *out)
DetlefStatus detlef_function_value_string(DetlefFunctionAccess *a, DetlefSlice input, DetlefHandle *out)
DetlefStatus detlef_function_callback_error(DetlefFunctionAccess *a, DetlefSlice message, DetlefSpan span, DetlefBool has_span)
DetlefStatus detlef_function_array_get(DetlefFunctionAccess *a, DetlefHandle handle, size_t index, DetlefHandle *out)
DetlefStatus detlef_function_record_create(DetlefFunctionAccess *a, DetlefHandle type_handle, const DetlefHandle *items, size_t count, DetlefHandle *out)
DetlefStatus detlef_function_array_remove(DetlefFunctionAccess *a, DetlefHandle handle, size_t index, DetlefHandle *out)
DetlefStatus detlef_function_value_none(DetlefFunctionAccess *a, DetlefHandle *out)
DetlefStatus detlef_function_record_type_field(DetlefFunctionAccess *a, DetlefHandle handle, size_t index, DetlefText *name_out, DetlefHandle *type_out)
DetlefStatus detlef_function_handle_clone(DetlefFunctionAccess *a, DetlefHandle handle, DetlefHandle *out)
DetlefStatus detlef_function_record_get(DetlefFunctionAccess *a, DetlefHandle handle, DetlefSlice input, DetlefHandle *out)
DetlefStatus detlef_function_argument_boolean(DetlefFunctionAccess *a, size_t index, DetlefBool *out)
DetlefStatus detlef_function_type_array(DetlefFunctionAccess *a, DetlefHandle inner, DetlefHandle *out)
DetlefStatus detlef_function_value_get_string(DetlefFunctionAccess *a, DetlefHandle handle, DetlefText *out)
DetlefStatus detlef_function_value_boolean(DetlefFunctionAccess *a, DetlefBool value, DetlefHandle *out)
DetlefStatus detlef_function_value_get_integer(DetlefFunctionAccess *a, DetlefHandle handle, int64_t *out)
DetlefStatus detlef_function_record_type_field_count(DetlefFunctionAccess *a, DetlefHandle handle, size_t *out)
DetlefStatus detlef_function_value_get_float(DetlefFunctionAccess *a, DetlefHandle handle, double *out)
DetlefStatus detlef_function_argument_count(DetlefFunctionAccess *a, size_t *out)
DetlefStatus detlef_function_type_inner(DetlefFunctionAccess *a, DetlefHandle handle, DetlefHandle *out)
DetlefStatus detlef_function_array_create(DetlefFunctionAccess *a, DetlefHandle type_handle, const DetlefHandle *items, size_t count, DetlefHandle *out)
DetlefStatus detlef_record_create(DetlefAccess *a, DetlefHandle type_handle, const DetlefHandle *items, size_t count, DetlefHandle *out)
DetlefStatus detlef_array_set(DetlefAccess *a, DetlefHandle handle, size_t index, DetlefHandle new_value)
DetlefStatus detlef_array_push(DetlefAccess *a, DetlefHandle handle, DetlefHandle new_value)
DetlefStatus detlef_record_set(DetlefAccess *a, DetlefHandle handle, DetlefSlice input, DetlefHandle new_value)
DetlefStatus detlef_array_remove(DetlefAccess *a, DetlefHandle handle, size_t index, DetlefHandle *out)
DetlefStatus detlef_array_get(DetlefAccess *a, DetlefHandle handle, size_t index, DetlefHandle *out)
DetlefStatus detlef_array_create(DetlefAccess *a, DetlefHandle type_handle, const DetlefHandle *items, size_t count, DetlefHandle *out)
DetlefStatus detlef_array_length(DetlefAccess *a, DetlefHandle handle, size_t *out)
DetlefStatus detlef_record_get(DetlefAccess *a, DetlefHandle handle, DetlefSlice input, DetlefHandle *out)
DetlefStatus detlef_package_control(DetlefAccess *a, DetlefHandle handle, DetlefSlice input, DetlefCallback callback, void *data)
DetlefStatus detlef_package_entry_name(DetlefAccess *a, DetlefHandle handle, DetlefPackageSection kind, size_t index, DetlefText *out)
DetlefStatus detlef_type_ref_info(DetlefAccess *a, DetlefHandle handle, DetlefTypeRefKind *kind, DetlefText *name_out, DetlefHandle *inner)
DetlefStatus detlef_package_record(DetlefAccess *a, DetlefHandle handle, DetlefSlice input, const DetlefNamed *fields, size_t count)
DetlefStatus detlef_type_ref_named(DetlefAccess *a, DetlefSlice input, DetlefHandle *out)
DetlefStatus detlef_package_control_callback(DetlefAccess *a, DetlefHandle handle, size_t index, DetlefCallback *callback_out, void **data_out)
DetlefStatus detlef_package_count(DetlefAccess *a, DetlefHandle handle, DetlefPackageSection kind, size_t *out)
DetlefStatus detlef_package_function_callback(DetlefAccess *a, DetlefHandle handle, size_t index, DetlefFunctionCallback *callback_out, void **data_out)
DetlefStatus detlef_package_member(DetlefAccess *a, DetlefHandle handle, DetlefPackageSection kind, size_t index, size_t member, DetlefText *name_out, DetlefHandle *type_out)
DetlefStatus detlef_package_binding(DetlefAccess *a, DetlefHandle handle, DetlefSlice input, DetlefHandle binding)
DetlefStatus detlef_type_ref_optional(DetlefAccess *a, DetlefHandle inner, DetlefHandle *out)
DetlefStatus detlef_package_binding_get(DetlefAccess *a, DetlefHandle handle, size_t index, DetlefHandle *out)
DetlefStatus detlef_type_ref_resolve(DetlefAccess *a, DetlefHandle handle, DetlefHandle *out)
DetlefStatus detlef_package_function(DetlefAccess *a, DetlefHandle handle, DetlefSlice input, const DetlefNamed *params, size_t count, const DetlefNamed *vararg, DetlefFunctionCallback callback, void *data)
DetlefStatus detlef_package_new(DetlefAccess *a, DetlefSlice input, DetlefHandle *out)
DetlefStatus detlef_package_install(DetlefAccess *a, DetlefHandle handle)
DetlefStatus detlef_type_ref_array(DetlefAccess *a, DetlefHandle inner, DetlefHandle *out)
DetlefStatus detlef_package_name(DetlefAccess *a, DetlefHandle handle, DetlefText *out)
DetlefStatus detlef_package_member_count(DetlefAccess *a, DetlefHandle handle, DetlefPackageSection kind, size_t index, size_t *out, DetlefBool *has_vararg)
DetlefStatus detlef_last_error(DetlefRuntime *runtime, DetlefText *error)
DetlefRuntime * detlef_runtime_new(void)
void detlef_text_free(DetlefText text)
DetlefStatus detlef_runtime_access(DetlefRuntime *runtime, DetlefAccessCallback callback, void *user_data)
DetlefStatus detlef_native_target(DetlefText *out)
DetlefStatus detlef_runtime_load_package(DetlefRuntime *runtime, DetlefSlice archive)
void detlef_runtime_free(DetlefRuntime *runtime)
uint32_t detlef_abi_version(void)
DetlefStatus detlef_type_optional(DetlefAccess *a, DetlefHandle inner, DetlefHandle *out)
DetlefStatus detlef_type_inner(DetlefAccess *a, DetlefHandle handle, DetlefHandle *out)
DetlefStatus detlef_record_type_field_count(DetlefAccess *a, DetlefHandle handle, size_t *out)
DetlefStatus detlef_record_type_define(DetlefAccess *a, DetlefHandle handle, const DetlefNamed *fields, size_t count)
DetlefStatus detlef_record_type_ensure(DetlefAccess *a, DetlefSlice input, DetlefHandle *out, DetlefBool *created)
DetlefStatus detlef_type_lookup(DetlefAccess *a, DetlefSlice input, DetlefHandle *out)
DetlefStatus detlef_type_kind(DetlefAccess *a, DetlefHandle handle, DetlefTypeKind *out)
DetlefStatus detlef_record_type_field(DetlefAccess *a, DetlefHandle handle, size_t index, DetlefText *name_out, DetlefHandle *type_out)
DetlefStatus detlef_type_array(DetlefAccess *a, DetlefHandle inner, DetlefHandle *out)
DetlefStatus detlef_type_name(DetlefAccess *a, DetlefHandle handle, DetlefText *out)
DetlefStatus detlef_type_of(DetlefAccess *a, DetlefHandle handle, DetlefHandle *out)
DetlefStatus detlef_value_to_string(DetlefAccess *a, DetlefHandle handle, DetlefText *out)
DetlefStatus detlef_value_string(DetlefAccess *a, DetlefSlice input, DetlefHandle *out)
DetlefStatus detlef_value_float(DetlefAccess *a, double value, DetlefHandle *out)
DetlefStatus detlef_value_none(DetlefAccess *a, DetlefHandle *out)
DetlefStatus detlef_execute(DetlefAccess *a, DetlefSlice source, DetlefHandle *out)
DetlefStatus detlef_descriptor_info(DetlefAccess *a, DetlefHandle handle, DetlefText *name_out, DetlefHandle *type_out)
DetlefStatus detlef_value_get_float(DetlefAccess *a, DetlefHandle handle, double *out)
DetlefStatus detlef_handle_release(DetlefAccess *a, DetlefHandle handle)
DetlefStatus detlef_descriptor_create(DetlefAccess *a, DetlefDescriptorKind kind, DetlefSlice input, DetlefHandle type_handle, DetlefHandle *out)
DetlefStatus detlef_handle_clone(DetlefAccess *a, DetlefHandle handle, DetlefHandle *out)
DetlefStatus detlef_handle_kind(DetlefAccess *a, DetlefHandle handle, DetlefHandleKind *out)
DetlefStatus detlef_value_boolean(DetlefAccess *a, DetlefBool value, DetlefHandle *out)
DetlefStatus detlef_value_get_boolean(DetlefAccess *a, DetlefHandle handle, DetlefBool *out)
DetlefStatus detlef_value_get_string(DetlefAccess *a, DetlefHandle handle, DetlefText *out)
DetlefStatus detlef_value_get_integer(DetlefAccess *a, DetlefHandle handle, int64_t *out)
DetlefStatus detlef_value_integer(DetlefAccess *a, int64_t value, DetlefHandle *out)
DetlefStatus detlef_variable_unset(DetlefAccess *a, DetlefSlice input)
DetlefStatus detlef_variable_set(DetlefAccess *a, DetlefSlice input, DetlefHandle handle)
DetlefStatus detlef_with_protected_values(DetlefAccess *a, const DetlefHandle *handles, size_t count, DetlefAccessCallback callback, void *data)
DetlefStatus detlef_variable_get(DetlefAccess *a, DetlefSlice input, DetlefHandle *out)
DetlefStatus detlef_variable_declare(DetlefAccess *a, DetlefSlice input, DetlefHandle type_handle, DetlefHandle initial)
DetlefSlice name
Definition detlef.h:124
DetlefHandle handle
Definition detlef.h:127
size_t len
Definition detlef.h:103
const uint8_t * data
Definition detlef.h:100
size_t end
Definition detlef.h:141
size_t start
Definition detlef.h:138
size_t len
Definition detlef.h:88
uint8_t * data
Definition detlef.h:85