pub trait ResultExt<T> {
// Required methods
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§
Sourcefn map_err_as_user(self, advice: &'static [&'static str]) -> Result<T, Error>
fn map_err_as_user(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>()
.map_err_as_user(&["Please provide a valid integer input."]);Sourcefn wrap_err_as_user<S: Into<Cow<'static, str>> + 'static>(
self,
message: S,
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>
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."],
);Sourcefn map_err_as_system(self, advice: &'static [&'static str]) -> Result<T, Error>
fn map_err_as_system(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>()
.map_err_as_system(&["Please report this issue to the dev team."]);Sourcefn wrap_err_as_system<S: Into<Cow<'static, str>> + 'static>(
self,
message: S,
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>
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", so this trait is not object safe.