Skip to content

Commit

Permalink
Auto merge of #127633 - SamuelMarks:eq-exit-code, r=dtolnay
Browse files Browse the repository at this point in the history
[library/std/src/process.rs] `PartialEq` for `ExitCode`

Converting a third-party CLI to a library so started passing around [`std::process::ExitCode`](https://doc.rust-lang.org/std/process/struct.ExitCode.html) in an `Either`. Then I realised the tests can't be modified to compare equality of `ExitCode`s.

This PR fixes this oversight.
  • Loading branch information
bors committed Sep 16, 2024
2 parents c52c23b + 2f0eb5f commit bde6bf2
Showing 1 changed file with 9 additions and 5 deletions.
14 changes: 9 additions & 5 deletions library/std/src/process.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1910,10 +1910,14 @@ impl crate::error::Error for ExitStatusError {}
/// to its parent under normal termination.
///
/// `ExitCode` is intended to be consumed only by the standard library (via
/// [`Termination::report()`]), and intentionally does not provide accessors like
/// `PartialEq`, `Eq`, or `Hash`. Instead the standard library provides the
/// canonical `SUCCESS` and `FAILURE` exit codes as well as `From<u8> for
/// ExitCode` for constructing other arbitrary exit codes.
/// [`Termination::report()`]). For forwards compatibility with potentially
/// unusual targets, this type currently does not provide `Eq`, `Hash`, or
/// access to the raw value. This type does provide `PartialEq` for
/// comparison, but note that there may potentially be multiple failure
/// codes, some of which will _not_ compare equal to `ExitCode::FAILURE`.
/// The standard library provides the canonical `SUCCESS` and `FAILURE`
/// exit codes as well as `From<u8> for ExitCode` for constructing other
/// arbitrary exit codes.
///
/// # Portability
///
Expand Down Expand Up @@ -1952,7 +1956,7 @@ impl crate::error::Error for ExitStatusError {}
/// ExitCode::SUCCESS
/// }
/// ```
#[derive(Clone, Copy, Debug)]
#[derive(Clone, Copy, Debug, PartialEq)]
#[stable(feature = "process_exitcode", since = "1.61.0")]
pub struct ExitCode(imp::ExitCode);

Expand Down

0 comments on commit bde6bf2

Please sign in to comment.