use super::*;
pub trait OptionExt<T>: Sized {
fn snafu_context<C, E>(self, context: C) -> Result<T, E>
where
C: snafu::IntoError<E, Source = snafu::NoneError>,
E: std::error::Error + snafu::ErrorCompat;
#[allow(unused)]
fn with_snafu_context<F, C, E>(self, context: F) -> Result<T, E>
where
F: FnOnce() -> C,
C: snafu::IntoError<E, Source = snafu::NoneError>,
E: std::error::Error + snafu::ErrorCompat;
}
impl<T> OptionExt<T> for Option<T> {
fn snafu_context<C, E>(self, context: C) -> Result<T, E>
where
C: snafu::IntoError<E, Source = snafu::NoneError>,
E: std::error::Error + snafu::ErrorCompat,
{
snafu::OptionExt::context(self, context)
}
fn with_snafu_context<F, C, E>(self, context: F) -> Result<T, E>
where
F: FnOnce() -> C,
C: snafu::IntoError<E, Source = snafu::NoneError>,
E: std::error::Error + snafu::ErrorCompat,
{
snafu::OptionExt::with_context(self, context)
}
}