Skip to main content

Critical

Trait Critical 

Source
pub trait Critical<T, E> {
    // Required method
    fn into_critical(self) -> Result<T, CriticalError>;
}
Expand description

Extension trait to easily wrap errors in CriticalError.

This is implemented for std::result::Result so can be used to coveniently wrap errors that implement std::error::Error to indicate that they are critical and should be returned by the REPL, for example:

let result: Result<(), std::fmt::Error> = Err(std::fmt::Error);
let critical = result.into_critical();
assert!(matches!(critical, Err(CriticalError::Critical(_))));

See examples/errors.rs for a concrete usage example.

Required Methods§

Source

fn into_critical(self) -> Result<T, CriticalError>

Wrap the contained Err in CriticalError or leave Ok untouched

Dyn Compatibility§

This trait is dyn compatible.

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

Implementations on Foreign Types§

Source§

impl<T, E> Critical<T, E> for Result<T, E>
where E: Error + Send + Sync + 'static,

Implementors§