Skip to content

Commit

Permalink
Rollup merge of rust-lang#130554 - ShE3py:unsupported-exitcode, r=Nor…
Browse files Browse the repository at this point in the history
…atrieb

`pal::unsupported::process::ExitCode`: use an `u8` instead of a `bool`

`ExitCode` should “represents the status code the current process can return to its parent under normal termination”, but is currently represented as a `bool` on unsupported platforms, making the `impl From<u8> for ExitCode` lossy.

Fixes rust-lang#130532.

History: [IRLO thread](https://internals.rust-lang.org/t/mini-pre-rfc-redesigning-process-exitstatus/5426) (`ExitCode` as a `main` return), rust-lang#48618 (initial impl), rust-lang#93445 (`From<u8>` impl).
  • Loading branch information
matthiaskrgr authored Sep 19, 2024
2 parents 569153a + dc628c8 commit 553c20c
Showing 1 changed file with 4 additions and 7 deletions.
11 changes: 4 additions & 7 deletions library/std/src/sys/pal/unsupported/process.rs
Original file line number Diff line number Diff line change
Expand Up @@ -255,11 +255,11 @@ impl ExitStatusError {
}

#[derive(PartialEq, Eq, Clone, Copy, Debug)]
pub struct ExitCode(bool);
pub struct ExitCode(u8);

impl ExitCode {
pub const SUCCESS: ExitCode = ExitCode(false);
pub const FAILURE: ExitCode = ExitCode(true);
pub const SUCCESS: ExitCode = ExitCode(0);
pub const FAILURE: ExitCode = ExitCode(1);

pub fn as_i32(&self) -> i32 {
self.0 as i32
Expand All @@ -268,10 +268,7 @@ impl ExitCode {

impl From<u8> for ExitCode {
fn from(code: u8) -> Self {
match code {
0 => Self::SUCCESS,
1..=255 => Self::FAILURE,
}
Self(code)
}
}

Expand Down

0 comments on commit 553c20c

Please sign in to comment.