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(24 name.to_str().unwrap().into(),25 value.to_str().unwrap().into(),26 )27 .unwrap()28}2930#[no_mangle]31pub unsafe extern "C" fn jsonnet_tla_var(vm: &State, name: *const c_char, value: *const c_char) {32 let name = CStr::from_ptr(name);33 let value = CStr::from_ptr(value);34 vm.add_tla_str(35 name.to_str().unwrap().into(),36 value.to_str().unwrap().into(),37 )38}3940#[no_mangle]41pub unsafe extern "C" fn jsonnet_tla_code(vm: &State, name: *const c_char, value: *const c_char) {42 let name = CStr::from_ptr(name);43 let value = CStr::from_ptr(value);44 vm.add_tla_code(45 name.to_str().unwrap().into(),46 value.to_str().unwrap().into(),47 )48 .unwrap()49}