git.delta.rocks / jrsonnet / refs/commits / 1111100e839d

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::{EvaluationState, 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(32	vm: &EvaluationState,33	ctx: *mut c_void,34) {35	jsonnet_import_callback(vm, _jrsonnet_static_import_callback, ctx)36}3738/// # Safety39#[no_mangle]40pub unsafe extern "C" fn jrsonnet_apply_static_native_callback(41	vm: &EvaluationState,42	name: *const c_char,43	ctx: *mut c_void,44	raw_params: *const *const c_char,45) {46	jsonnet_native_callback(vm, name, _jrsonnet_static_native_callback, ctx, raw_params)47}4849#[no_mangle]50pub extern "C" fn jrsonnet_set_trace_format(vm: &EvaluationState, format: u8) {51	use jrsonnet_evaluator::trace::JsFormat;52	match format {53		1 => vm.set_trace_format(Box::new(JsFormat)),54		_ => panic!("unknown trace format"),55	}56}