Macro union

Source
macro_rules! union {
    ($name:expr ; call $body_fn:expr) => { ... };
    ($name:expr ; $body:expr) => { ... };
    ($name:expr) => { ... };
}