/* 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* p0);

extern char* jsonnet_evaluate_snippet(struct JsonnetVm* p0, char* p1, char* p2, int* p3);

extern char* jsonnet_evaluate_file(struct JsonnetVm* p0, char* p1, int* p2);

extern void jsonnet_max_stack(struct JsonnetVm* p0, unsigned int p1);

extern void jsonnet_string_output(struct JsonnetVm* p0, int p1);

extern void jsonnet_max_trace(struct JsonnetVm* p0, unsigned int p1);

extern void jsonnet_jpath_add(struct JsonnetVm* p0, char* p1);

extern void jsonnet_ext_var(struct JsonnetVm* p0, char* p1, char* p2);

extern void jsonnet_ext_code(struct JsonnetVm* p0, char* p1, char* p2);

extern void jsonnet_tla_var(struct JsonnetVm* p0, char* p1, char* p2);

extern void jsonnet_tla_code(struct JsonnetVm* p0, char* p1, char* p2);

extern void jsonnet_native_callback(struct JsonnetVm* p0, char* p1, JsonnetNativeCallback* p2, void* p3, char** p4);

extern void jsonnet_import_callback(struct JsonnetVm* p0, JsonnetImportCallback* p1, void* p2);

extern char* jsonnet_json_extract_string(struct JsonnetVm* p0, struct JsonnetJsonValue* p1);

extern int jsonnet_json_extract_number(struct JsonnetVm* p0, struct JsonnetJsonValue* p1, double* p2);

extern int jsonnet_json_extract_bool(struct JsonnetVm* p0, struct JsonnetJsonValue* p1);

extern int jsonnet_json_extract_null(struct JsonnetVm* p0, struct JsonnetJsonValue* p1);

extern struct JsonnetJsonValue* jsonnet_json_make_string(struct JsonnetVm* p0, char* p1);

extern struct JsonnetJsonValue* jsonnet_json_make_number(struct JsonnetVm* p0, double p1);

extern struct JsonnetJsonValue* jsonnet_json_make_bool(struct JsonnetVm* p0, int p1);

extern struct JsonnetJsonValue* jsonnet_json_make_null(struct JsonnetVm* p0);

extern struct JsonnetJsonValue* jsonnet_json_make_array(struct JsonnetVm* p0);

extern void jsonnet_json_array_append(struct JsonnetVm* p0, struct JsonnetJsonValue* p1, struct JsonnetJsonValue* p2);

extern struct JsonnetJsonValue* jsonnet_json_make_object(struct JsonnetVm* p0);

extern void jsonnet_json_object_append(struct JsonnetVm* p0, struct JsonnetJsonValue* p1, char* p2, struct JsonnetJsonValue* p3);

extern void jsonnet_json_destroy(struct JsonnetVm* p0, struct JsonnetJsonValue* p1);

#ifdef __cplusplus
}
#endif
