use std::ffi::{c_char, CString}; pub fn node_start<S: AsRef<str>>(args: &[S]) { let cstr_argv: Vec<CString> = args .iter() .map(|arg| CString::new(arg.as_ref()).unwrap()) .collect(); let mut p_argv: Vec<*const i8> = cstr_argv .iter() // do NOT into_iter() .map(|arg| arg.as_ptr()) .collect(); p_argv.push(std::ptr::null()); let p: *const *const c_char = p_argv.as_ptr(); unsafe { crate::sys::node_start(cstr_argv.len() as i32, p) }; }