git.delta.rocks / jrsonnet / refs/commits / 8db09e1bbe2e

difftreelog

source

bindings/jsonnet/src/interop.rs1.3 KiBsourcehistory
1//! Jrsonnet specific additional binding helpers23use crate::{import::jsonnet_import_callback, native::jsonnet_native_callback};4use jrsonnet_evaluator::{EvaluationState, Val};5use std::{6	ffi::c_void,7	os::raw::{c_char, c_int},8};910extern "C" {11	pub fn _jrsonnet_static_import_callback(12		ctx: *mut c_void,13		base: *const c_char,14		rel: *const c_char,15		found_here: *mut *const c_char,16		success: &mut c_int,17	) -> *const c_char;1819	#[allow(improper_ctypes)]20	pub fn _jrsonnet_static_native_callback(21		ctx: *const c_void,22		argv: *const *const Val,23		success: *mut c_int,24	) -> *mut Val;25}2627/// # Safety28#[no_mangle]29pub unsafe extern "C" fn jrsonnet_apply_static_import_callback(30	vm: &EvaluationState,31	ctx: *mut c_void,32) {33	jsonnet_import_callback(vm, _jrsonnet_static_import_callback, ctx)34}3536/// # Safety37#[no_mangle]38pub unsafe extern "C" fn jrsonnet_apply_static_native_callback(39	vm: &EvaluationState,40	name: *const c_char,41	ctx: *mut c_void,42	raw_params: *const *const c_char,43) {44	jsonnet_native_callback(vm, name, _jrsonnet_static_native_callback, ctx, raw_params)45}4647#[no_mangle]48pub extern "C" fn jrsonnet_set_trace_format(vm: &EvaluationState, format: u8) {49	use jrsonnet_evaluator::trace::JsFormat;50	match format {51		1 => vm.set_trace_format(Box::new(JsFormat)),52		_ => panic!("unknown trace format"),53	}54}