go-jsonnet/c-bindings/internal.h
Hanyu Cui 63a452246d
Support different output streams than os.Stderr for std.trace (C API) (#520)
Support different output streams than os.Stderr for std.trace (C API)
2021-03-21 20:03:01 +01:00

49 lines
1.8 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);
typedef int JsonnetIoWriterCallback(const void *buf, size_t nbytes, int *success);
int jsonnet_internal_execute_writer(JsonnetIoWriterCallback *cb,
const void *buf,
size_t nbytes,
int *success);
void jsonnet_internal_free_string(char *str);