/// <summary> /// Converts the managed object returned from a native callback into its native jsonnet equivalent. /// </summary> public static JsonnetJsonValue ConvertToNative(JsonnetVmHandle vm, object v) { return(v switch { null => NativeMethods.jsonnet_json_make_null(vm), string str => NativeMethods.jsonnet_json_make_string(vm, str), bool b => NativeMethods.jsonnet_json_make_bool(vm, b), int i => NativeMethods.jsonnet_json_make_number(vm, i), double d => NativeMethods.jsonnet_json_make_number(vm, d), IDictionary <string, object> dictionary => ConvertDictionaryToNative(vm, dictionary), IEnumerable enumerable => ConvertEnumerableToNative(vm, enumerable), _ => ConvertObjectPropertiesToNative(vm, v) });
public static extern void jsonnet_json_destroy(JsonnetVmHandle vm, JsonnetJsonValue v);
public static extern void jsonnet_json_object_append(JsonnetVmHandle vm, JsonnetJsonValue obj, string f, JsonnetJsonValue v);
public static extern JsonnetJsonValue jsonnet_json_make_object(JsonnetVmHandle vm);
public static extern void jsonnet_gc_min_objects(JsonnetVmHandle vm, uint v);
public static extern void jsonnet_jpath_add(JsonnetVmHandle vm, string v);
public static extern void jsonnet_tla_code(JsonnetVmHandle vm, string key, string value);
public static extern void jsonnet_native_callback( JsonnetVmHandle vm, string name, JsonnetNativeCallback cb, IntPtr ctx, string[] parms);
public static extern JsonnetJsonValue jsonnet_json_make_string(JsonnetVmHandle vm, string v);
public static extern bool jsonnet_json_extract_null(JsonnetVmHandle vm, JsonnetJsonValue v);
public static extern int jsonnet_json_extract_bool(JsonnetVmHandle vm, JsonnetJsonValue v);
public static extern bool jsonnet_json_extract_number(JsonnetVmHandle vm, JsonnetJsonValue v, out double outVal);
public static extern IntPtr jsonnet_json_extract_string(JsonnetVmHandle vm, JsonnetJsonValue v);
public static extern void jsonnet_string_output(JsonnetVmHandle vm, int v);
public static extern void jsonnet_gc_growth_trigger(JsonnetVmHandle vm, double v);
public static extern IntPtr jsonnet_realloc(JsonnetVmHandle vm, IntPtr buf, UIntPtr sz);
public static extern void jsonnet_import_callback(JsonnetVmHandle vm, JsonnetImportCallback cb, IntPtr ctx);
public static extern JsonnetJsonValue jsonnet_json_make_number(JsonnetVmHandle vm, double v);
public static extern void jsonnet_ext_var(JsonnetVmHandle vm, string key, string value);
public static extern JsonnetJsonValue jsonnet_json_make_bool(JsonnetVmHandle vm, bool v);
public static extern void jsonnet_max_trace(JsonnetVmHandle vm, uint v);
public static extern JsonnetJsonValue jsonnet_json_make_array(JsonnetVmHandle vm);
public static extern void jsonnet_json_array_append(JsonnetVmHandle vm, JsonnetJsonValue arr, JsonnetJsonValue v);
public static extern IntPtr jsonnet_evaluate_snippet(JsonnetVmHandle vm, string filename, string snippet, out bool error);