wasmtime_wasi/p2/host/
exit.rs

1use crate::p2::{bindings::cli::exit, WasiImpl, WasiView};
2use crate::I32Exit;
3
4impl<T> exit::Host for WasiImpl<T>
5where
6    T: WasiView,
7{
8    fn exit(&mut self, status: Result<(), ()>) -> anyhow::Result<()> {
9        let status = match status {
10            Ok(()) => 0,
11            Err(()) => 1,
12        };
13        Err(anyhow::anyhow!(I32Exit(status)))
14    }
15
16    fn exit_with_code(&mut self, status_code: u8) -> anyhow::Result<()> {
17        Err(anyhow::anyhow!(I32Exit(status_code.into())))
18    }
19}