git.delta.rocks / jrsonnet / refs/commits / f2fefaf94f02

difftreelog

source

bindings/jsonnet/src/interop.rs1.3 KiBsourcehistory
1//! Jrsonnet specific additional binding helpers23use std::{4	ffi::c_void,5	os::raw::{c_char, c_int},6};78use jrsonnet_evaluator::{State, Val};910use crate::{import::jsonnet_import_callback, native::jsonnet_native_callback};1112extern "C" {13	pub fn _jrsonnet_static_import_callback(14		ctx: *mut c_void,15		base: *const c_char,16		rel: *const c_char,17		found_here: *mut *const c_char,18		success: &mut c_int,19	) -> *const c_char;2021	#[allow(improper_ctypes)]22	pub fn _jrsonnet_static_native_callback(23		ctx: *const c_void,24		argv: *const *const Val,25		success: *mut c_int,26	) -> *mut Val;27}2829/// # Safety30#[no_mangle]31pub unsafe extern "C" fn jrsonnet_apply_static_import_callback(vm: &State, ctx: *mut c_void) {32	jsonnet_import_callback(vm, _jrsonnet_static_import_callback, ctx)33}3435/// # Safety36#[no_mangle]37pub unsafe extern "C" fn jrsonnet_apply_static_native_callback(38	vm: &State,39	name: *const c_char,40	ctx: *mut c_void,41	raw_params: *const *const c_char,42) {43	jsonnet_native_callback(vm, name, _jrsonnet_static_native_callback, ctx, raw_params)44}4546#[no_mangle]47pub extern "C" fn jrsonnet_set_trace_format(vm: &State, format: u8) {48	use jrsonnet_evaluator::trace::JsFormat;49	match format {50		1 => vm.set_trace_format(Box::new(JsFormat)),51		_ => panic!("unknown trace format"),52	}53}