Macro map

Source
macro_rules! map {
    ($($key:ident $(: $value:expr)?),*) => { ... };
    (@map_one $key:ident) => { ... };
    (@map_one $key:ident : $value:expr) => { ... };
}