/* Code generated by cmd/cgo; DO NOT EDIT. */

/* package github.com/google/go-jsonnet/c-bindings */


#line 1 "cgo-builtin-export-prolog"

#include <stddef.h> /* for ptrdiff_t below */

#ifndef GO_CGO_EXPORT_PROLOGUE_H
#define GO_CGO_EXPORT_PROLOGUE_H

#ifndef GO_CGO_GOSTRING_TYPEDEF
typedef struct { const char *p; ptrdiff_t n; } _GoString_;
#endif

#endif

/* Start of preamble from import "C" comments.  */


#line 13 "c-bindings.go"

 #include "internal.h"

#line 1 "cgo-generated-wrapper"


/* End of preamble from import "C" comments.  */


/* Start of boilerplate cgo prologue.  */
#line 1 "cgo-gcc-export-header-prolog"

#ifndef GO_CGO_PROLOGUE_H
#define GO_CGO_PROLOGUE_H

typedef signed char GoInt8;
typedef unsigned char GoUint8;
typedef short GoInt16;
typedef unsigned short GoUint16;
typedef int GoInt32;
typedef unsigned int GoUint32;
typedef long long GoInt64;
typedef unsigned long long GoUint64;
typedef GoInt64 GoInt;
typedef GoUint64 GoUint;
typedef __SIZE_TYPE__ GoUintptr;
typedef float GoFloat32;
typedef double GoFloat64;
typedef float _Complex GoComplex64;
typedef double _Complex GoComplex128;

/*
  static assertion to make sure the file is being used on architecture
  at least with matching size of GoInt.
*/
typedef char _check_for_64_bit_pointer_matching_GoInt[sizeof(void*)==64/8 ? 1:-1];

#ifndef GO_CGO_GOSTRING_TYPEDEF
typedef _GoString_ GoString;
#endif
typedef void *GoMap;
typedef void *GoChan;
typedef struct { void *t; void *v; } GoInterface;
typedef struct { void *data; GoInt len; GoInt cap; } GoSlice;

#endif

/* End of boilerplate cgo prologue.  */

#ifdef __cplusplus
extern "C" {
#endif

extern char* jsonnet_version();
extern struct JsonnetVm* jsonnet_make();
extern void jsonnet_destroy(struct JsonnetVm* vmRef);
extern char* jsonnet_evaluate_snippet(struct JsonnetVm* vmRef, char* filename, char* code, int* e);
extern char* jsonnet_evaluate_snippet_stream(struct JsonnetVm* vmRef, char* filename, char* code, int* e);
extern char* jsonnet_evaluate_snippet_multi(struct JsonnetVm* vmRef, char* filename, char* code, int* e);
extern char* jsonnet_evaluate_file(struct JsonnetVm* vmRef, char* filename, int* e);
extern char* jsonnet_evaluate_file_stream(struct JsonnetVm* vmRef, char* filename, int* e);
extern char* jsonnet_evaluate_file_multi(struct JsonnetVm* vmRef, char* filename, int* e);
extern void jsonnet_max_stack(struct JsonnetVm* vmRef, unsigned int v);
extern void jsonnet_string_output(struct JsonnetVm* vmRef, int v);
extern void jsonnet_max_trace(struct JsonnetVm* vmRef, unsigned int v);
extern void jsonnet_jpath_add(struct JsonnetVm* vmRef, char* path);
extern void jsonnet_ext_var(struct JsonnetVm* vmRef, char* key, char* value);
extern void jsonnet_ext_code(struct JsonnetVm* vmRef, char* key, char* value);
extern void jsonnet_tla_var(struct JsonnetVm* vmRef, char* key, char* value);
extern void jsonnet_tla_code(struct JsonnetVm* vmRef, char* key, char* value);
extern void jsonnet_native_callback(struct JsonnetVm* vmRef, char* name, JsonnetNativeCallback* cb, void* ctx, char** params);
extern void jsonnet_import_callback(struct JsonnetVm* vmRef, JsonnetImportCallback* cb, void* ctx);
extern char* jsonnet_json_extract_string(struct JsonnetVm* vmRef, struct JsonnetJsonValue* json);
extern int jsonnet_json_extract_number(struct JsonnetVm* vmRef, struct JsonnetJsonValue* json, double* out);
extern int jsonnet_json_extract_bool(struct JsonnetVm* vmRef, struct JsonnetJsonValue* json);
extern int jsonnet_json_extract_null(struct JsonnetVm* vmRef, struct JsonnetJsonValue* json);
extern struct JsonnetJsonValue* jsonnet_json_make_string(struct JsonnetVm* vmRef, char* v);
extern struct JsonnetJsonValue* jsonnet_json_make_number(struct JsonnetVm* vmRef, double v);
extern struct JsonnetJsonValue* jsonnet_json_make_bool(struct JsonnetVm* vmRef, int v);
extern struct JsonnetJsonValue* jsonnet_json_make_null(struct JsonnetVm* vmRef);
extern struct JsonnetJsonValue* jsonnet_json_make_array(struct JsonnetVm* vmRef);
extern void jsonnet_json_array_append(struct JsonnetVm* vmRef, struct JsonnetJsonValue* arr, struct JsonnetJsonValue* v);
extern struct JsonnetJsonValue* jsonnet_json_make_object(struct JsonnetVm* vmRef);
extern void jsonnet_json_object_append(struct JsonnetVm* vmRef, struct JsonnetJsonValue* obj, char* f, struct JsonnetJsonValue* v);
extern void jsonnet_json_destroy(struct JsonnetVm* vmRef, struct JsonnetJsonValue* v);

#ifdef __cplusplus
}
#endif
