fold

Macro fold 

Source
macro_rules! fold {
    (@parse [zip!($($iae:expr),* $(,)?), $init:expr, |$acc:pat_param, ($($iip:pat_param),* $(,)?)| $($body:tt)*] $($cb:tt)*) => { ... };
    (@parse [$iae:expr, $init:expr, |$acc:pat_param, $iip:pat_param| $($body:tt)*] $($cb:tt)*) => { ... };
    (@parse [$iae:expr, $init:expr, $fn:expr] $($cb:tt)*) => { ... };
    (@expand [$init:expr] [$body:expr] [$acc:pat_param] [$(($iae:expr, $iip:pat_param, $ia:ident))+]) => { ... };
    ($($fold_args:tt)*) => { ... };
}