wasi_net/process/
exit_status.rs

1#[derive(PartialEq, Eq, Clone, Copy)]
2pub struct ExitStatusError {
3    code: Option<i32>,
4}
5
6impl ExitStatusError {
7    pub fn code(&self) -> Option<i32> {
8        self.code.clone()
9    }
10
11    pub fn into_status(&self) -> ExitStatus {
12        ExitStatus { code: self.code }
13    }
14}
15
16#[derive(PartialEq, Eq, Clone, Copy)]
17pub struct ExitStatus {
18    pub(super) code: Option<i32>,
19}
20
21impl ExitStatus {
22    pub fn exit_ok(&self) -> Result<(), ExitStatusError> {
23        match self.code {
24            Some(a) if a == 0 => return Ok(()),
25            Some(a) => {
26                return Err(ExitStatusError { code: Some(a) });
27            }
28            None => return Ok(()),
29        }
30    }
31
32    pub fn success(&self) -> bool {
33        self.code.unwrap_or(0) == 0
34    }
35
36    pub fn code(&self) -> Option<i32> {
37        self.code
38    }
39}