ctrl_macros 0.1.0

Control flow macros for Option and Result
Documentation
#[macro_export]
macro_rules! ok_or {
    ( $e:expr, $err_case:expr ) => {
        match $e {
            Ok(x) => x,
            Err(_) => $err_case,
        }
    };
}

#[macro_export]
macro_rules! ok_or_return {
    ( $e:expr ) => {
        match $e {
            Ok(x) => x,
            Err(_) => return,
        }
    };
    ( $e:expr, $return_value:expr ) => {
        match $e {
            Ok(x) => x,
            Err(_) => return $return_value,
        }
    };
}

#[macro_export]
macro_rules! ok_or_continue {
    ( $e:expr ) => {
        match $e {
            Ok(x) => x,
            Err(_) => continue,
        }
    };
}

#[macro_export]
macro_rules! ok_or_break {
    ( $e:expr ) => {
        match $e {
            Ok(x) => x,
            Err(_) => break,
        }
    };
    ( $e:expr, $return_value:expr ) => {
        match $e {
            Ok(x) => x,
            Err(_) => break $return_value,
        }
    };
}

#[macro_export]
macro_rules! some_or {
    ( $e:expr, $err_case:expr ) => {
        match $e {
            Some(x) => x,
            None => $err_case,
        }
    };
}

#[macro_export]
macro_rules! some_or_return {
    ( $e:expr ) => {
        match $e {
            Some(x) => x,
            None => return,
        }
    };
    ( $e:expr, $return_value:expr ) => {
        match $e {
            Some(x) => x,
            None => return $return_value,
        }
    };
}

#[macro_export]
macro_rules! some_or_continue {
    ( $e:expr ) => {
        match $e {
            Some(x) => x,
            None => continue,
        }
    };
}

#[macro_export]
macro_rules! some_or_break {
    ( $e:expr ) => {
        match $e {
            Some(x) => x,
            None => break,
        }
    };
    ( $e:expr, $return_value:expr ) => {
        match $e {
            Some(x) => x,
            None => break $return_value,
        }
    };
}