blob: 13066f101656a409074d2cfc60eb5d2e60bae99e [file] [log] [blame]
use std::{ffi::CString, sync::Once};
autocxx::include_cpp! (
#include "aos/init.h"
safety!(unsafe)
generate!("aos::InitFromRust")
);
/// Initializes AOS.
pub fn init() {
static ONCE: Once = Once::new();
ONCE.call_once(|| {
let argv0 = std::env::args().next().expect("must have argv[0]");
let argv0 = CString::new(argv0).expect("argv[0] may not have NUL");
// SAFETY: argv0 is a NUL-terminated string.
unsafe { ffi::aos::InitFromRust(argv0.as_ptr()) };
});
}