macro_rules! if_chain {
( [ let $l:pat $( if $c:expr ),* => $r:expr ] $b:block ) => { ... };
([ let $l:pat $( if $c:expr ),* => $r:expr ] $b1:block else $b2:block ) => { ... };
([ let $l:pat $( if $c:expr ),* => $r:expr $(, let $ll:pat $( if $cc:expr ),* => $rr:expr )+ ] $b:block ) => { ... };
([ let $l:pat $( if $c:expr ),* => $r:expr $(, let $ll:pat $( if $cc:expr ),* => $rr:expr )+ ] $b1:block else $b2:block) => { ... };
}