use crate::libdeno::deno_set_v8_flags;
use libc::c_char;
use libc::c_int;
use std::ffi::CStr;
use std::ffi::CString;
use std::vec::Vec;
pub fn v8_set_flags(args: Vec<String>) -> Vec<String> {
let mut raw_argv = args
.iter()
.map(|arg| CString::new(arg.as_str()).unwrap().into_bytes_with_nul())
.collect::<Vec<_>>();
let mut c_argv = raw_argv
.iter_mut()
.map(|arg| arg.as_mut_ptr() as *mut c_char)
.collect::<Vec<_>>();
let mut c_argv_len = c_argv.len() as c_int;
unsafe { deno_set_v8_flags(&mut c_argv_len, c_argv.as_mut_ptr()) };
c_argv.truncate(c_argv_len as usize);
c_argv
.iter()
.map(|ptr| unsafe {
let cstr = CStr::from_ptr(*ptr as *const c_char);
let slice = cstr.to_str().unwrap();
slice.to_string()
}).collect()
}