diff --git a/result-extended/src/lib.rs b/result-extended/src/lib.rs index b56be5f..e4b0bdd 100644 --- a/result-extended/src/lib.rs +++ b/result-extended/src/lib.rs @@ -141,6 +141,30 @@ where } } +impl From, FE>> + for Result +{ + fn from(res: std::result::Result, FE>) -> Self { + match res { + Ok(Ok(v)) => ok(v), + Ok(Err(e)) => error(e), + Err(e) => fatal(e), + } + } +} + +impl From> + for std::result::Result, FE> +{ + fn from(res: Result) -> std::result::Result, FE> { + match res { + Result::Ok(v) => Ok(Ok(v)), + Result::Err(e) => Ok(Err(e)), + Result::Fatal(e) => Err(e), + } + } +} + /// Convenience function to create an ok value. pub fn ok(val: A) -> Result { Result::Ok(val)