go-jsonnet/c-bindings/internal.h
Alexander Petrov fc188d008d issue-433 avoid keeping all the allocated handles forever by using map
and uintptr of the allocated object.
2020-08-01 10:55:42 +02:00

42 lines
1.5 KiB
C

#pragma once
#include <stdint.h>
struct JsonnetVm {
uintptr_t id;
};
struct JsonnetVm *jsonnet_internal_make_vm_with_id(uintptr_t id);
void jsonnet_internal_free_vm(struct JsonnetVm *x);
struct JsonnetJsonValue {
uintptr_t id;
};
struct JsonnetJsonValue *jsonnet_internal_make_json_with_id(uintptr_t id);
void jsonnet_internal_free_json(struct JsonnetJsonValue *x);
typedef struct JsonnetJsonValue *JsonnetNativeCallback(void *ctx,
const struct JsonnetJsonValue *const *argv,
int *success);
struct JsonnetJsonValue* jsonnet_internal_execute_native(JsonnetNativeCallback *cb,
void *ctx,
const struct JsonnetJsonValue *const *argv,
int *success);
typedef char *JsonnetImportCallback(void *ctx,
const char *base,
const char *rel,
char **found_here,
int *success);
char* jsonnet_internal_execute_import(JsonnetImportCallback *cb,
void *ctx,
const char *base,
const char *rel,
char **found_here,
int *success);
void jsonnet_internal_free_string(char *str);