pub struct ExitStatus { /* private fields */ }
Expand description
Wrap std::process::ExitStatus to provide the command in error contexts
Implementations§
Methods from Deref<Target = ExitStatus>§
Sourcepub fn exit_ok(&self) -> Result<(), ExitStatusError>
🔬This is a nightly-only experimental API. (exit_status_error
)
pub fn exit_ok(&self) -> Result<(), ExitStatusError>
exit_status_error
)Was termination successful? Returns a Result
.
§Examples
#![feature(exit_status_error)]
use std::process::Command;
let status = Command::new("ls")
.arg("/dev/nonexistent")
.status()
.expect("ls could not be executed");
println!("ls: {status}");
status.exit_ok().expect_err("/dev/nonexistent could be listed!");
1.0.0 · Sourcepub fn success(&self) -> bool
pub fn success(&self) -> bool
Was termination successful? Signal termination is not considered a success, and success is defined as a zero exit status.
§Examples
use std::process::Command;
let status = Command::new("mkdir")
.arg("projects")
.status()
.expect("failed to execute mkdir");
if status.success() {
println!("'projects/' directory created");
} else {
println!("failed to create 'projects/' directory: {status}");
}
1.0.0 · Sourcepub fn code(&self) -> Option<i32>
pub fn code(&self) -> Option<i32>
Returns the exit code of the process, if any.
In Unix terms the return value is the exit status: the value passed to exit
, if the
process finished by calling exit
. Note that on Unix the exit status is truncated to 8
bits, and that values that didn’t come from a program’s call to exit
may be invented by the
runtime system (often, for example, 255, 254, 127 or 126).
On Unix, this will return None
if the process was terminated by a signal.
ExitStatusExt
is an
extension trait for extracting any such signal, and other details, from the ExitStatus
.
§Examples
use std::process::Command;
let status = Command::new("mkdir")
.arg("projects")
.status()
.expect("failed to execute mkdir");
match status.code() {
Some(code) => println!("Exited with status code: {code}"),
None => println!("Process terminated by signal")
}