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