123use jrsonnet_evaluator::EvaluationState;4use std::{ffi::CStr, os::raw::c_char};567#[no_mangle]8pub unsafe extern "C" fn jsonnet_ext_var(9 vm: &EvaluationState,10 name: *const c_char,11 value: *const c_char,12) {13 let name = CStr::from_ptr(name);14 let value = CStr::from_ptr(value);15 vm.add_ext_str(16 name.to_str().unwrap().into(),17 value.to_str().unwrap().into(),18 )19}202122#[no_mangle]23pub unsafe extern "C" fn jsonnet_ext_code(24 vm: &EvaluationState,25 name: *const c_char,26 value: *const c_char,27) {28 let name = CStr::from_ptr(name);29 let value = CStr::from_ptr(value);30 vm.add_ext_code(31 name.to_str().unwrap().into(),32 value.to_str().unwrap().into(),33 )34 .unwrap()35}3637#[no_mangle]38pub unsafe extern "C" fn jsonnet_tla_var(39 vm: &EvaluationState,40 name: *const c_char,41 value: *const c_char,42) {43 let name = CStr::from_ptr(name);44 let value = CStr::from_ptr(value);45 vm.add_tla_str(46 name.to_str().unwrap().into(),47 value.to_str().unwrap().into(),48 )49}5051#[no_mangle]52pub unsafe extern "C" fn jsonnet_tla_code(53 vm: &EvaluationState,54 name: *const c_char,55 value: *const c_char,56) {57 let name = CStr::from_ptr(name);58 let value = CStr::from_ptr(value);59 vm.add_tla_code(60 name.to_str().unwrap().into(),61 value.to_str().unwrap().into(),62 )63 .unwrap()64}