proc-result

Crates.ioproc-result
lib.rsproc-result
version0.3.0
created_at2025-06-01 05:55:58.543674+00
updated_at2025-06-06 20:49:29.970794+00
descriptionA tiny cross-platform library containing exit status and code types
homepage
repositoryhttp://crates.lurey.io/proc-result
max_upload_size
id1696904
size54,113
admins (github:crates-lurey-io:admins)

documentation

README

proc-result

A tiny cross-platform library containing exit status and code types.

Rust Docs Crates.io Version codecov

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.

Usage

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);
}

Features

Name Default Description

serde | false | Enables serialization support for most types using serde. std | true | Enables compatibility with std::process::ExitStatus.

Footnotes

  1. The std feature is enabled by default, but can be disabled.

Commit count: 0

cargo fmt