summary refs log tree commit diff
path: root/library/std/src/sys
diff options
context:
space:
mode:
authorJane Lusby <jlusby@yaah.dev>2022-01-28 14:07:27 -0800
committerDavid Tolnay <dtolnay@gmail.com>2022-02-06 12:43:12 -0800
commitcf4ac6b1e16e08ee7513ed03a323c6d00504beb2 (patch)
tree81ec543232f3b9d7f95a43920ace3c5e995debbe /library/std/src/sys
parentf624427f8771c00819684c783bb841bf72095704 (diff)
downloadrust-cf4ac6b1e16e08ee7513ed03a323c6d00504beb2.tar.gz
rust-cf4ac6b1e16e08ee7513ed03a323c6d00504beb2.zip
Add From<u8> for ExitCode
This should cover a mostly cross-platform subset of supported exit codes.
Diffstat (limited to 'library/std/src/sys')
-rw-r--r--library/std/src/sys/unix/process/process_common.rs6
-rw-r--r--library/std/src/sys/unsupported/process.rs9
-rw-r--r--library/std/src/sys/windows/process.rs6
3 files changed, 21 insertions, 0 deletions
diff --git a/library/std/src/sys/unix/process/process_common.rs b/library/std/src/sys/unix/process/process_common.rs
index 7ac2f9d8af7..97985ddd331 100644
--- a/library/std/src/sys/unix/process/process_common.rs
+++ b/library/std/src/sys/unix/process/process_common.rs
@@ -476,6 +476,12 @@ impl ExitCode {
     }
 }
 
+impl From<u8> for ExitCode {
+    fn from(code: u8) -> Self {
+        Self(code)
+    }
+}
+
 pub struct CommandArgs<'a> {
     iter: crate::slice::Iter<'a, CString>,
 }
diff --git a/library/std/src/sys/unsupported/process.rs b/library/std/src/sys/unsupported/process.rs
index 7846e43cfb5..deb58ffa8c7 100644
--- a/library/std/src/sys/unsupported/process.rs
+++ b/library/std/src/sys/unsupported/process.rs
@@ -162,6 +162,15 @@ impl ExitCode {
     }
 }
 
+impl From<u8> for ExitCode {
+    fn from(code: u8) -> Self {
+        match code {
+            0 => Self::SUCCESS,
+            1..255 => Self::FAILURE,
+        }
+    }
+}
+
 pub struct Process(!);
 
 impl Process {
diff --git a/library/std/src/sys/windows/process.rs b/library/std/src/sys/windows/process.rs
index 5ad57042797..f9e71951b2a 100644
--- a/library/std/src/sys/windows/process.rs
+++ b/library/std/src/sys/windows/process.rs
@@ -666,6 +666,12 @@ impl ExitCode {
     }
 }
 
+impl From<u8> for ExitCode {
+    fn from(code: u8) -> Self {
+        ExitCode(c::DWORD::from(code))
+    }
+}
+
 fn zeroed_startupinfo() -> c::STARTUPINFO {
     c::STARTUPINFO {
         cb: 0,