123use std::{ffi::CStr, os::raw::c_char};45use jrsonnet_evaluator::State;678#[no_mangle]9pub unsafe extern "C" fn jsonnet_ext_var(vm: &State, name: *const c_char, value: *const c_char) {10 let name = CStr::from_ptr(name);11 let value = CStr::from_ptr(value);12 vm.add_ext_str(13 name.to_str().unwrap().into(),14 value.to_str().unwrap().into(),15 )16}171819#[no_mangle]20pub unsafe extern "C" fn jsonnet_ext_code(vm: &State, name: *const c_char, value: *const c_char) {21 let name = CStr::from_ptr(name);22 let value = CStr::from_ptr(value);23 vm.add_ext_code(name.to_str().unwrap(), value.to_str().unwrap().into())24 .unwrap()25}2627#[no_mangle]28pub unsafe extern "C" fn jsonnet_tla_var(vm: &State, name: *const c_char, value: *const c_char) {29 let name = CStr::from_ptr(name);30 let value = CStr::from_ptr(value);31 vm.add_tla_str(32 name.to_str().unwrap().into(),33 value.to_str().unwrap().into(),34 )35}3637#[no_mangle]38pub unsafe extern "C" fn jsonnet_tla_code(vm: &State, name: *const c_char, value: *const c_char) {39 let name = CStr::from_ptr(name);40 let value = CStr::from_ptr(value);41 vm.add_tla_code(name.to_str().unwrap().into(), value.to_str().unwrap())42 .unwrap()43}