1 module jsonned.binding; 2 3 4 import core.stdc.config; 5 import core.stdc.stdarg: va_list; 6 static import core.simd; 7 static import std.conv; 8 9 struct Int128 { long lower; long upper; } 10 struct UInt128 { ulong lower; ulong upper; } 11 12 struct __locale_data { int dummy; } 13 14 15 16 alias _Bool = bool; 17 struct dpp { 18 static struct Opaque(int N) { 19 void[N] bytes; 20 } 21 22 static bool isEmpty(T)() { 23 return T.tupleof.length == 0; 24 } 25 static struct Move(T) { 26 T* ptr; 27 } 28 29 30 static auto move(T)(ref T value) { 31 return Move!T(&value); 32 } 33 mixin template EnumD(string name, T, string prefix) if(is(T == enum)) { 34 private static string _memberMixinStr(string member) { 35 import std.conv: text; 36 import std.array: replace; 37 return text(` `, member.replace(prefix, ""), ` = `, T.stringof, `.`, member, `,`); 38 } 39 private static string _enumMixinStr() { 40 import std.array: join; 41 string[] ret; 42 ret ~= "enum " ~ name ~ "{"; 43 static foreach(member; __traits(allMembers, T)) { 44 ret ~= _memberMixinStr(member); 45 } 46 ret ~= "}"; 47 return ret.join("\n"); 48 } 49 mixin(_enumMixinStr()); 50 } 51 } 52 53 extern(C) 54 { 55 alias wchar_t = int; 56 alias size_t = c_ulong; 57 alias ptrdiff_t = c_long; 58 struct max_align_t 59 { 60 long __clang_max_align_nonce1; 61 real __clang_max_align_nonce2; 62 } 63 void jsonnet_destroy(JsonnetVm*) @nogc nothrow; 64 char* jsonnet_evaluate_snippet_stream(JsonnetVm*, const(char)*, const(char)*, int*) @nogc nothrow; 65 char* jsonnet_evaluate_file_stream(JsonnetVm*, const(char)*, int*) @nogc nothrow; 66 char* jsonnet_evaluate_snippet_multi(JsonnetVm*, const(char)*, const(char)*, int*) @nogc nothrow; 67 char* jsonnet_evaluate_file_multi(JsonnetVm*, const(char)*, int*) @nogc nothrow; 68 char* jsonnet_evaluate_snippet(JsonnetVm*, const(char)*, const(char)*, int*) @nogc nothrow; 69 char* jsonnet_evaluate_file(JsonnetVm*, const(char)*, int*) @nogc nothrow; 70 void jsonnet_jpath_add(JsonnetVm*, const(char)*) @nogc nothrow; 71 void jsonnet_max_trace(JsonnetVm*, uint) @nogc nothrow; 72 void jsonnet_tla_code(JsonnetVm*, const(char)*, const(char)*) @nogc nothrow; 73 void jsonnet_tla_var(JsonnetVm*, const(char)*, const(char)*) @nogc nothrow; 74 void jsonnet_ext_code(JsonnetVm*, const(char)*, const(char)*) @nogc nothrow; 75 void jsonnet_ext_var(JsonnetVm*, const(char)*, const(char)*) @nogc nothrow; 76 void jsonnet_native_callback(JsonnetVm*, const(char)*, JsonnetJsonValue* function(void*, const(const(JsonnetJsonValue)*)*, int*), void*, const(const(char)*)*) @nogc nothrow; 77 void jsonnet_import_callback(JsonnetVm*, char* function(void*, const(char)*, const(char)*, char**, int*), void*) @nogc nothrow; 78 char* jsonnet_realloc(JsonnetVm*, char*, c_ulong) @nogc nothrow; 79 alias JsonnetNativeCallback = JsonnetJsonValue* function(void*, const(const(JsonnetJsonValue)*)*, int*); 80 void jsonnet_json_destroy(JsonnetVm*, JsonnetJsonValue*) @nogc nothrow; 81 void jsonnet_json_object_append(JsonnetVm*, JsonnetJsonValue*, const(char)*, JsonnetJsonValue*) @nogc nothrow; 82 JsonnetJsonValue* jsonnet_json_make_object(JsonnetVm*) @nogc nothrow; 83 void jsonnet_json_array_append(JsonnetVm*, JsonnetJsonValue*, JsonnetJsonValue*) @nogc nothrow; 84 JsonnetJsonValue* jsonnet_json_make_array(JsonnetVm*) @nogc nothrow; 85 JsonnetJsonValue* jsonnet_json_make_null(JsonnetVm*) @nogc nothrow; 86 JsonnetJsonValue* jsonnet_json_make_bool(JsonnetVm*, int) @nogc nothrow; 87 JsonnetJsonValue* jsonnet_json_make_number(JsonnetVm*, double) @nogc nothrow; 88 JsonnetJsonValue* jsonnet_json_make_string(JsonnetVm*, const(char)*) @nogc nothrow; 89 int jsonnet_json_extract_null(JsonnetVm*, const(JsonnetJsonValue)*) @nogc nothrow; 90 int jsonnet_json_extract_bool(JsonnetVm*, const(JsonnetJsonValue)*) @nogc nothrow; 91 int jsonnet_json_extract_number(JsonnetVm*, const(JsonnetJsonValue)*, double*) @nogc nothrow; 92 const(char)* jsonnet_json_extract_string(JsonnetVm*, const(JsonnetJsonValue)*) @nogc nothrow; 93 struct JsonnetJsonValue; 94 alias JsonnetImportCallback = char* function(void*, const(char)*, const(char)*, char**, int*); 95 void jsonnet_string_output(JsonnetVm*, int) @nogc nothrow; 96 void jsonnet_gc_growth_trigger(JsonnetVm*, double) @nogc nothrow; 97 void jsonnet_gc_min_objects(JsonnetVm*, uint) @nogc nothrow; 98 void jsonnet_max_stack(JsonnetVm*, uint) @nogc nothrow; 99 JsonnetVm* jsonnet_make() @nogc nothrow; 100 struct JsonnetVm; 101 const(char)* jsonnet_version() @nogc nothrow; 102 103 104 105 106 107 108 static if(!is(typeof(LIB_JSONNET_VERSION))) { 109 enum LIB_JSONNET_VERSION = "v0.14.0"; 110 } 111 }