okey 0.1.1

Everything is Result::Ok...
Documentation
#[macro_export]
macro_rules! okey {
    (fn $($tokens:tt)*) => ($crate::okey!(
        @parse_signature [fn] $($tokens)*
    ););
    (@parse_signature [$($sig:tt)*] -> Result<$ty:ty> {
        $($body:tt)*
    }) => ($crate::okey!(
        @parse_body [$($sig)* -> ::std::result::Result<$ty, Box<dyn ::std::error::Error>>] [] $($body)*
    ););
    (@parse_signature [$($sig:tt)*] $tt:tt $($tail:tt)*) => ($crate::okey!(
        @parse_signature [$($sig)* $tt] $($tail)*
    ););
    (@parse_body [$($sig:tt)*] [$($body:tt)*] return Err($expr:expr); $($tail:tt)*) => ($crate::okey!(
        @parse_body [$($sig)*] [$($body)*
            return ::std::result::Result::Err(($expr).into());
        ] $($tail)*
    ););
    (@parse_body [$($sig:tt)*] [$($body:tt)*] return $expr:expr; $($tail:tt)*) => ($crate::okey!(
        @parse_body [$($sig)*] [$($body)*
            return ::std::result::Result::Ok($expr);
        ] $($tail)*
    ););
    (@parse_body [$($sig:tt)*] [$($body:tt)*] $stmt:stmt; $($tail:tt)*) => ($crate::okey!(
        @parse_body [$($sig)*] [$($body)* $stmt] $($tail)*
    ););
    (@parse_body [$($sig:tt)*] [$($body:tt)*]) => ($($sig)* {
        $($body)*
    });
}