1#[repr(transparent)]
2pub struct wasmtime_wasip2_config_t {
3 pub(crate) builder: wasmtime_wasi::p2::WasiCtxBuilder,
4}
5
6#[unsafe(no_mangle)]
7pub unsafe extern "C" fn wasmtime_wasip2_config_new() -> Box<wasmtime_wasip2_config_t> {
8 Box::new(wasmtime_wasip2_config_t {
9 builder: wasmtime_wasi::p2::WasiCtxBuilder::new(),
10 })
11}
12
13#[unsafe(no_mangle)]
14pub unsafe extern "C" fn wasmtime_wasip2_config_inherit_stdin(
15 config: &mut wasmtime_wasip2_config_t,
16) {
17 config.builder.inherit_stdin();
18}
19
20#[unsafe(no_mangle)]
21pub unsafe extern "C" fn wasmtime_wasip2_config_inherit_stdout(
22 config: &mut wasmtime_wasip2_config_t,
23) {
24 config.builder.inherit_stdout();
25}
26
27#[unsafe(no_mangle)]
28pub unsafe extern "C" fn wasmtime_wasip2_config_inherit_stderr(
29 config: &mut wasmtime_wasip2_config_t,
30) {
31 config.builder.inherit_stderr();
32}
33
34#[unsafe(no_mangle)]
35pub unsafe extern "C" fn wasmtime_wasip2_config_arg(
36 config: &mut wasmtime_wasip2_config_t,
37 arg: *const u8,
38 arg_len: usize,
39) {
40 let arg = unsafe { std::slice::from_raw_parts(arg, arg_len) };
41 let arg = std::str::from_utf8(arg).expect("valid utf-8");
42 config.builder.arg(arg);
43}
44
45#[unsafe(no_mangle)]
46pub unsafe extern "C" fn wasmtime_wasip2_config_delete(_: Box<wasmtime_wasip2_config_t>) {}