use crate::ffi::php_register_variable_safe;
use crate::types::Zval;
use std::ffi::CString;
pub struct ServerVarRegistrar {
track_vars: *mut Zval,
}
impl ServerVarRegistrar {
#[must_use]
pub unsafe fn from_raw(track_vars: *mut Zval) -> Self {
Self { track_vars }
}
pub fn register(&mut self, name: &str, value: &str) {
let Ok(c_name) = CString::new(name) else {
return;
};
unsafe {
php_register_variable_safe(
c_name.as_ptr().cast_mut(),
value.as_ptr().cast(),
value.len(),
self.track_vars.cast(),
);
}
}
}