pub trait OptionExt<T>: Sealed {
// Required method
fn ok_or_eyre<M>(self, message: M) -> Result<T>
where M: Debug + Display + Send + Sync + 'static;
}Expand description
Provides the ok_or_eyre method for Option.
This trait is sealed and cannot be implemented for types outside of
eyre.
§Example
use eyre::OptionExt;
let option: Option<()> = None;
let result = option.ok_or_eyre("static str error");
assert_eq!(result.unwrap_err().to_string(), "static str error");§ok_or_eyre vs ok_or_else
If string interpolation is required for the generated report,
use ok_or_else instead,
invoking eyre! to perform string interpolation:
use eyre::eyre;
let option: Option<()> = None;
let result = option.ok_or_else(|| eyre!("{} error", "dynamic"));
assert_eq!(result.unwrap_err().to_string(), "dynamic error");ok_or_eyre incurs no runtime cost, as the error object
is constructed from the provided static argument
only in the None case.
Required Methods§
sourcefn ok_or_eyre<M>(self, message: M) -> Result<T>
fn ok_or_eyre<M>(self, message: M) -> Result<T>
Transform the Option<T> into a Result<T, E>,
mapping Some(v) to Ok(v)
and None to Report.
ok_or_eyre allows for eyre Report error objects
to be lazily created from static messages in the None case.
For dynamic error messages, use ok_or_else,
invoking eyre! in the closure to perform string interpolation.
Object Safety§
This trait is not object safe.