#options #error #result

no-std into-result

A simple convenience trait for converting something into a Result or Option

5 unstable releases

0.3.1 Mar 9, 2020
0.3.0 Mar 9, 2020
0.2.0 Mar 9, 2020
0.1.1 Sep 6, 2019
0.1.0 Jul 26, 2019

#2324 in Rust patterns

Apache-2.0/MIT

8KB
129 lines

into-result

docs.rs badge Travis badge

A simple convenience trait for converting something into a Result or Option.

Out of the box, this gives you improved error handling for Command::output Command::spawn, and Command::status. These methods only return Err if the process fails to spawn; further handling is required to check if the command has a successful exit status. IntoResult does that handling for you, folding both types of failure into one Result:

use into_result::{IntoResult as _};
use std::process::Command;

Command::new("ls")
    .spawn()
    .into_result()
    .expect("either failed to spawn command, or command returned non-zero exit status");

You can run the example to see what this looks like in practice.

into-result also has no_std support via no-default-features. You'll still get the IntoResult trait and an impl for bool.

No runtime deps

Features