comp

Macro comp 

Source
macro_rules! comp {
    [$ex:expr, for $i:pat in $iter:expr $(, if $cond:expr)?] => { ... };
    [$ex:expr, for $i:pat in $iter:expr $(=> {$($then:stmt;)+})? $(,for $i2:pat in $iter2:expr $(=> {$($then2:stmt;)+})?)+ $(, if $cond:expr)?] => { ... };
    {$key:expr => $ex:expr, for $i:pat in $iter:expr $(, if $cond:expr)?} => { ... };
    {$key:expr, $ex:expr, for $i:pat in $iter:expr $(, if $cond:expr)?} => { ... };
    {{$key:expr, $ex:expr}, for $i:pat in $iter:expr $(, if $cond:expr)?} => { ... };
    {$key:expr => $ex:expr, for $i:pat in $iter:expr $(=> {$($then:stmt;)+})? $(,for $i2:pat in $iter2:expr $(=> {$($then2:stmt;)+})?)+ $(, if $cond:expr)?} => { ... };
    {$key:expr, $ex:expr, for $i:pat in $iter:expr $(=> {$($then:stmt;)+})? $(,for $i2:pat in $iter2:expr $(=> {$($then2:stmt;)+})?)* $(, if $cond:expr)?} => { ... };
    {{$key:expr, $ex:expr}, for $i:pat in $iter:expr $(=> {$($then:stmt;)+})? $(,for $i2:pat in $iter2:expr $(=> {$($then2:stmt;)+})?)* $(, if $cond:expr)?} => { ... };
}