)]}'
{
  "commit": "13bcaadd77bb348b2191a95ead34ebdce141d906",
  "tree": "2318225677d688d6c4331f263b89eb79f96aa5f5",
  "parents": [
    "17aa77551e89d5e80d4b506c9a32fc151264b8e4"
  ],
  "author": {
    "name": "Schneems",
    "email": "richard.schneeman+foo@gmail.com",
    "time": "Thu Jun 25 15:11:22 2026 -0500"
  },
  "committer": {
    "name": "Schneems",
    "email": "richard.schneeman+foo@gmail.com",
    "time": "Wed Jul 01 15:18:57 2026 -0500"
  },
  "message": "Clarify ExitStatusExt documentation\n\n## Fix struct links\n\nThere are several structs (`ExitStatus` and `ExitStatusError`) that could be linked, but aren\u0027t. Fixed. All links show their struct now instead of previously some showed `process::ExitStatus` when rendered.\n\n## Add `wait` links\n\nThe docs distinguish `wait` as code, but do not link to **what** wait they\u0027re referring to. As this is Unix extension documentation, adding a link to the POSIX standard for `wait`. Showing a construction of an `ExitStatus` for both a signal and an exit code helps to highlight and internalize what **wait status, not an exit status** means.\n\n## Example for `from_raw`\n\nCurrent documentation calls out \"The value should be a **wait status, not an exit status**.\" but it\u0027s unclear what exactly that means without a reference or an example. I added a doctest that shows you need to shift by 8 to get the desired result and annotated it with information about how that\u0027s derived based on the linked `wait` documentation.\n\n## Example to `ExitStatus::signal`\n\nCalled out that a signaled process does not also produce an exit code. Added an example. Called out that just because a process reports that it was not terminated via a signal doesn\u0027t mean it never got one (it could be handled). Also added a note correlating shell behavior to exit codes:\n\nGNU Bash manual: https://web.archive.org/web/20260625050034/https://www.gnu.org/software/bash/manual/bash.html#Exit-Status-1\n\n\u003e [...] a fatal signal whose number is N, Bash uses the value 128+N as the exit status.\n\nFreeBSD bash(1) man page: https://man.freebsd.org/bash/1\n\n\u003e The return value\t[...]  128+n  if the command is terminated by signal n.\n\n## Panic scope on `from_raw`\n\nThis change is based on preference/experience:\n\nWhen I originally read this documentation, it was because I clicked through `Output` -\u003e `ExitStatus`. While the text \"Creates a new `ExitStatus` or `ExitStatusError`\" is present at the top, I didn\u0027t internalize what that meant exactly. Therefore, when I got to the panic section, I was mildly confused.\n\nThis edit makes the behavior more explicitly attached to the type. While the original format had all of the same information available, it was left for the reader to bridge that \"making an ExitStatusError\" is referring to `ExitStatus::from_raw` as that\u0027s the only constructor (for now).\n\nMaking this bridge more explicit also future-proofs us for future constructors (if they\u0027re ever added) that may or may not panic. While the context of the panic documentation is directly attached to `from_raw`, it\u0027s slightly (pedantically) more correct to not imply that ANY way of creating an ExitStatusError` from a `wait` of `0` will panic (a different constructor could perhaps return an option instead).\n\nTechnically, the syntax isn\u0027t correct, as it should be `\u003cExitStatusError as ExitStatusExt\u003e::from_raw`, but I think this conveys intent without being overly verbose.\n\nCo-authored-by: Colin Casey \u003ccasey.colin@gmail.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8a7b94d914ab0e4f35d3d42619f1f44c57641012",
      "old_mode": 33188,
      "old_path": "library/std/src/os/unix/process.rs",
      "new_id": "325a428f2e3d4f4c10a1572267aa2f34f8ab25f9",
      "new_mode": 33188,
      "new_path": "library/std/src/os/unix/process.rs"
    }
  ]
}
