Crates.io | proc-result |
lib.rs | proc-result |
version | 0.3.0 |
created_at | 2025-06-01 05:55:58.543674+00 |
updated_at | 2025-06-06 20:49:29.970794+00 |
description | A tiny cross-platform library containing exit status and code types |
homepage | |
repository | http://crates.lurey.io/proc-result |
max_upload_size | |
id | 1696904 |
size | 54,113 |
A tiny cross-platform library containing exit status and code types.
Unlike std::process
, this crate does not require the standard library1, nor
libc
, and can create and interpret exit codes of non-current platforms. For
example, on Windows, it can read and interpret exit codes that may have been
recorded from a Linux process, or vice versa.
Most users of the crate will use the ProcResult
enum, which represents the
result a run of a explaining what exit code or (on Unix platforms) the signal
the subprocess was prematurely terminated with, and is constructed from a
std::process::ExitStatus
:
use proc_result::ProcResult;
use std::error::Error;
use std::process::Command;
fn main() -> Result<(), Box<dyn Error>> {
let result: ProcResult = Command::new("ls").status()?.into();
// Ensures exit code 0.
result.ok()?;
Ok(())
}
Advanced users, or users writing tests or interpreting exit codes from other
platforms may import and use the platform-specific exit code types directly,
from the unix
or windows
modules, respectively. For example, to create a
Unix exit code from a raw integer:
use proc_result::unix::ExitCode;
let code = ExitCode::from_raw(1);
if code.is_success() {
println!("Command succeeded!");
} else {
eprintln!("Command failed with exit code: {}", code);
}
Name | Default | Description |
---|
serde
| false
| Enables serialization support for most types using serde
.
std
| true
| Enables compatibility with std::process::ExitStatus
.
The std
feature is enabled by default, but can be disabled. ↩