Skip to main content

ResultExt

Trait ResultExt 

Source
pub trait ResultExt<T> {
    // Required methods
    fn or_user_err(self, advice: &'static [&'static str]) -> Result<T, Error>;
    fn wrap_user_err<S: Into<Cow<'static, str>> + 'static>(
        self,
        message: S,
        advice: &'static [&'static str],
    ) -> Result<T, Error>;
    fn or_system_err(self, advice: &'static [&'static str]) -> Result<T, Error>;
    fn wrap_system_err<S: Into<Cow<'static, str>> + 'static>(
        self,
        message: S,
        advice: &'static [&'static str],
    ) -> Result<T, Error>;
    fn map_err_as_user(
        self,
        advice: &'static [&'static str],
    ) -> Result<T, Error>;
    fn wrap_err_as_user<S: Into<Cow<'static, str>> + 'static>(
        self,
        message: S,
        advice: &'static [&'static str],
    ) -> Result<T, Error>;
    fn map_err_as_system(
        self,
        advice: &'static [&'static str],
    ) -> Result<T, Error>;
    fn wrap_err_as_system<S: Into<Cow<'static, str>> + 'static>(
        self,
        message: S,
        advice: &'static [&'static str],
    ) -> Result<T, Error>;
}
Expand description

Extension trait for Result to convert errors into user-friendly or system-friendly Error types.

§Examples

use human_errors::ResultExt;

// Converts any error into a user-caused error with the provided advice.
"0.not a number".parse::<i32>()
    .map_err_as_user(&["Please provide a valid integer input."]);

// Converts any error into a system-caused error with the provided advice.
"0.not a number".parse::<i32>()
    .map_err_as_system(&["Please check your system configuration."]);

// Wraps any error into a user-caused error with a custom message and advice.
"0.not a number".parse::<i32>()
    .wrap_err_as_user(
        "Failed to parse the provided input as an integer.",
        &["Please provide a valid integer input."],
    );

// Wraps any error into a system-caused error with a custom message and advice.
"0.not a number".parse::<i32>()
    .wrap_err_as_system(
        "Failed to parse the provided input as an integer.",
        &["Please check your system configuration."],
    );

Required Methods§

Source

fn or_user_err(self, advice: &'static [&'static str]) -> Result<T, Error>

Converts a Result<T, E> into a Result<T, Error>, wrapping any error in a user-facing error with the provided advice.

§Examples
use human_errors::ResultExt;

"0.not a number".parse::<i32>()
    .or_user_err(&["Please provide a valid integer input."]);
Source

fn wrap_user_err<S: Into<Cow<'static, str>> + 'static>( self, message: S, advice: &'static [&'static str], ) -> Result<T, Error>

Converts a Result<T, E> into a Result<T, Error>, wrapping any error in a user-facing error with the provided description and advice.

§Examples
use human_errors::ResultExt;

"0.not a number".parse::<i32>()
    .wrap_user_err(
        "Failed to parse the provided input as an integer.",
        &["Please provide a valid integer input."],
    );
Source

fn or_system_err(self, advice: &'static [&'static str]) -> Result<T, Error>

Converts a Result<T, E> into a Result<T, Error>, wrapping any error in a system-facing error with the provided advice.

§Examples
use human_errors::ResultExt;
 
"0.not a number".parse::<i32>()
   .or_system_err(&["Please report this issue to the dev team."]);
Source

fn wrap_system_err<S: Into<Cow<'static, str>> + 'static>( self, message: S, advice: &'static [&'static str], ) -> Result<T, Error>

Converts a Result<T, E> into a Result<T, Error>, wrapping any error in a system-facing error with the provided description and advice.

§Examples
use human_errors::ResultExt;

"0.not a number".parse::<i32>()
    .wrap_system_err(
        "Failed to parse the provided input as an integer.",
        &["Please report this issue to the dev team."],
    );
Source

fn map_err_as_user(self, advice: &'static [&'static str]) -> Result<T, Error>

👎Deprecated since 0.2.3:

We are updating the interface to match the Rust stdlib style. Please use or_user_err method instead.

Converts a Result<T, E> into a Result<T, Error>, wrapping any error in a user-facing error with the provided advice.

§Examples
use human_errors::ResultExt;

"0.not a number".parse::<i32>()
    .map_err_as_user(&["Please provide a valid integer input."]);
Source

fn wrap_err_as_user<S: Into<Cow<'static, str>> + 'static>( self, message: S, advice: &'static [&'static str], ) -> Result<T, Error>

👎Deprecated since 0.2.3:

We are updating the interface to match the Rust stdlib style. Please use wrap_user_err method instead.

Converts a Result<T, E> into a Result<T, Error>, wrapping any error in a user-facing error with the provided description and advice.

§Examples
use human_errors::ResultExt;

"0.not a number".parse::<i32>()
    .wrap_err_as_user(
        "Failed to parse the provided input as an integer.",
        &["Please provide a valid integer input."],
    );
Source

fn map_err_as_system(self, advice: &'static [&'static str]) -> Result<T, Error>

👎Deprecated since 0.2.3:

We are updating the interface to match the Rust stdlib style. Please use or_system_err method instead.

Converts a Result<T, E> into a Result<T, Error>, wrapping any error in a system-facing error with the provided advice.

§Examples
use human_errors::ResultExt;

"0.not a number".parse::<i32>()
    .map_err_as_system(&["Please report this issue to the dev team."]);
Source

fn wrap_err_as_system<S: Into<Cow<'static, str>> + 'static>( self, message: S, advice: &'static [&'static str], ) -> Result<T, Error>

👎Deprecated since 0.2.3:

We are updating the interface to match the Rust stdlib style. Please use wrap_system_err method instead.

Converts a Result<T, E> into a Result<T, Error>, wrapping any error in a system-facing error with the provided description and advice.

§Examples
use human_errors::ResultExt;

"0.not a number".parse::<i32>()
    .wrap_err_as_system(
        "Failed to parse the provided input as an integer.",
        &["Please report this issue to the dev team."],
    );

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<T, E> ResultExt<T> for Result<T, E>
where E: Into<Box<dyn Error + Send + Sync>> + 'static,

Source§

fn or_user_err(self, advice: &'static [&'static str]) -> Result<T, Error>

Source§

fn wrap_user_err<S: Into<Cow<'static, str>> + 'static>( self, message: S, advice: &'static [&'static str], ) -> Result<T, Error>

Source§

fn or_system_err(self, advice: &'static [&'static str]) -> Result<T, Error>

Source§

fn wrap_system_err<S: Into<Cow<'static, str>> + 'static>( self, message: S, advice: &'static [&'static str], ) -> Result<T, Error>

Source§

fn map_err_as_user(self, advice: &'static [&'static str]) -> Result<T, Error>

👎Deprecated since 0.2.3:

We are updating the interface to match the Rust stdlib style. Please use or_user_err method instead.

Source§

fn wrap_err_as_user<S: Into<Cow<'static, str>> + 'static>( self, message: S, advice: &'static [&'static str], ) -> Result<T, Error>

👎Deprecated since 0.2.3:

We are updating the interface to match the Rust stdlib style. Please use wrap_user_err method instead.

Source§

fn map_err_as_system(self, advice: &'static [&'static str]) -> Result<T, Error>

👎Deprecated since 0.2.3:

We are updating the interface to match the Rust stdlib style. Please use or_system_err method instead.

Source§

fn wrap_err_as_system<S: Into<Cow<'static, str>> + 'static>( self, message: S, advice: &'static [&'static str], ) -> Result<T, Error>

👎Deprecated since 0.2.3:

We are updating the interface to match the Rust stdlib style. Please use wrap_system_err method instead.

Implementors§