6#ifndef DETLEF_SDK_A95992C2_ACAE_4E89_926F_6F692CFF5892
7#define DETLEF_SDK_A95992C2_ACAE_4E89_926F_6F692CFF5892
50enum DetlefSdkStatusCode {
67enum DetlefSdkTypeKindCode {
87enum DetlefSdkCallableKindCode {
105enum DetlefSdkBoolCode {
141#define DETLEF_SDK_TYPE(name) { DETLEF_SDK_NAMED, name, NULL }
149#define DETLEF_SDK_ARRAY_TYPE(inner) { DETLEF_SDK_ARRAY, NULL, inner }
157#define DETLEF_SDK_OPTIONAL_TYPE(inner) { DETLEF_SDK_OPTIONAL, NULL, inner }
168#define DETLEF_SDK_COUNT(items) (sizeof(items) / sizeof((items)[0]))
177#define DETLEF_SDK_TRY(operation) \
179 DetlefSdkStatus sdk_status_ = (operation); \
180 if (sdk_status_ != DETLEF_SDK_OK) \
181 return sdk_status_; \
592#define DETLEF_SDK_PACKAGE(definition) DETLEF_SDK_IMPLEMENT_PACKAGE(definition)
594#include "internal/sdk_common.h"
596#if defined(__wasm32__)
597#include "internal/sdk_wasm.h"
599#include "internal/sdk_native.h"
static DetlefSdkStatus detlef_sdk_argument(DetlefSdkCall *call, size_t index, DetlefSdkValue *out)
static DetlefSdkStatus detlef_sdk_argument_count(DetlefSdkCall *call, size_t *count)
static DetlefSdkStatus detlef_sdk_error(DetlefSdkCall *call, const char *message)
static DetlefSdkStatus detlef_sdk_execute(DetlefSdkCall *call, const char *source, size_t length, DetlefSdkValue *out)
static void * detlef_sdk_data(DetlefSdkCall *call)
static DetlefSdkStatus detlef_sdk_release(DetlefSdkCall *call, DetlefSdkValue value)
static DetlefSdkStatus detlef_sdk_retain(DetlefSdkCall *call, DetlefSdkValue value, DetlefSdkValue *out)
static DetlefSdkStatus detlef_sdk_record_get(DetlefSdkCall *call, DetlefSdkValue value, const char *field, DetlefSdkValue *out)
static DetlefSdkStatus detlef_sdk_array_set(DetlefSdkCall *call, DetlefSdkValue value, size_t index, DetlefSdkValue item)
static DetlefSdkStatus detlef_sdk_record_set(DetlefSdkCall *call, DetlefSdkValue value, const char *field, DetlefSdkValue item)
static DetlefSdkStatus detlef_sdk_array_get(DetlefSdkCall *call, DetlefSdkValue value, size_t index, DetlefSdkValue *out)
static DetlefSdkStatus detlef_sdk_record(DetlefSdkCall *call, const char *name, const DetlefSdkValue *fields, size_t count, DetlefSdkValue *out)
static DetlefSdkStatus detlef_sdk_array(DetlefSdkCall *call, const DetlefSdkType *type, const DetlefSdkValue *items, size_t count, DetlefSdkValue *out)
static DetlefSdkStatus detlef_sdk_array_length(DetlefSdkCall *call, DetlefSdkValue value, size_t *out)
struct DetlefSdkCall DetlefSdkCall
DetlefSdkStatus(* DetlefSdkCallback)(DetlefSdkCall *call, DetlefSdkValue *result)
static DetlefSdkStatus detlef_sdk_get_float(DetlefSdkCall *call, DetlefSdkValue value, double *out)
static DetlefSdkStatus detlef_sdk_get_integer(DetlefSdkCall *call, DetlefSdkValue value, int64_t *out)
static DetlefSdkStatus detlef_sdk_string(DetlefSdkCall *call, const char *text, size_t length, DetlefSdkValue *out)
static DetlefSdkStatus detlef_sdk_none(DetlefSdkCall *call, DetlefSdkValue *out)
static DetlefSdkStatus detlef_sdk_boolean(DetlefSdkCall *call, DetlefSdkBool value, DetlefSdkValue *out)
static DetlefSdkStatus detlef_sdk_format(DetlefSdkCall *call, DetlefSdkValue value, char *output, size_t capacity, size_t *length)
static DetlefSdkStatus detlef_sdk_float(DetlefSdkCall *call, double value, DetlefSdkValue *out)
static DetlefSdkStatus detlef_sdk_integer(DetlefSdkCall *call, int64_t value, DetlefSdkValue *out)
static DetlefSdkStatus detlef_sdk_get_boolean(DetlefSdkCall *call, DetlefSdkValue value, DetlefSdkBool *out)
DetlefSdkCallback callback
const DetlefSdkField * parameters
DetlefSdkCallableKind kind
const DetlefSdkType * variadic
const DetlefSdkType * type
const DetlefSdkCallable * callables
const DetlefSdkRecord * records
const DetlefSdkField * fields
const DetlefSdkType * inner