Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
bytecodealliance
GitHub Repository: bytecodealliance/wasmtime
Path: blob/main/crates/c-api/src/wasip2.rs
1692 views
1
#[repr(transparent)]
2
pub struct wasmtime_wasip2_config_t {
3
pub(crate) builder: wasmtime_wasi::WasiCtxBuilder,
4
}
5
6
#[unsafe(no_mangle)]
7
pub unsafe extern "C" fn wasmtime_wasip2_config_new() -> Box<wasmtime_wasip2_config_t> {
8
Box::new(wasmtime_wasip2_config_t {
9
builder: wasmtime_wasi::WasiCtxBuilder::new(),
10
})
11
}
12
13
#[unsafe(no_mangle)]
14
pub 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)]
21
pub 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)]
28
pub 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)]
35
pub 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)]
46
pub unsafe extern "C" fn wasmtime_wasip2_config_delete(_: Box<wasmtime_wasip2_config_t>) {}
47
48