#[macro_export]
macro_rules! map {
($($key:expr => $val:expr),*,) => (
$crate::map!($($key => $val),*)
);
($($key:expr => $val:expr),*) => ({
#[allow(unused_mut)]
let mut b_map = ::std::collections::BTreeMap::new();
$(b_map.insert($key, $val);)*
b_map
});
}