4#ifndef DETLEF_DB1E2997_E00E_4A25_9C4D_34D3080D7039
5#define DETLEF_DB1E2997_E00E_4A25_9C4D_34D3080D7039
57enum DetlefStatusCode {
153enum DetlefHandleKindCode {
210enum DetlefDescriptorKindCode {
250enum DetlefTypeKindCode {
279enum DetlefPackageSectionCode {
302enum DetlefExpressionKindCode {
331enum DetlefTypeRefKindCode {
476#if !defined(__wasm32__)
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)
DetlefStatus(* DetlefCallback)(void *user_data, DetlefAccess *access, DetlefHandle *result)
struct DetlefRuntime DetlefRuntime
struct DetlefFunctionAccess DetlefFunctionAccess
struct DetlefAccess DetlefAccess
DetlefStatus(* DetlefAccessCallback)(void *user_data, DetlefAccess *access)
DetlefStatus(* DetlefFunctionCallback)(void *user_data, DetlefFunctionAccess *access, DetlefHandle *result)
void(* DetlefOutput)(void *user_data, const uint8_t *text, size_t len)
@ DETLEF_PACKAGE_BINDINGS
@ DETLEF_PACKAGE_CONTROLS
@ DETLEF_PACKAGE_FUNCTIONS
@ DETLEF_INVALID_ARGUMENT
@ DETLEF_DESCRIPTOR_VARARG
@ DETLEF_DESCRIPTOR_FIELD
@ DETLEF_DESCRIPTOR_PARAMETER
@ DETLEF_TYPE_RECORD_UNDEFINED
@ DETLEF_TYPE_RECORD_DEFINED
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)