macro_rules! map {
($( $key: expr => $val: expr ),* $(,)*) => {{
let mut map = ::std::collections::HashMap::new();
$( map.insert($key, $val); )*
map
}}
}
macro_rules! vec_deque {
($elem:expr; $n:expr) => ({
use std::collections::VecDeque;
VecDeque::from(vec![$elem; $n])
});
($($x: expr),*) => ({
use std::collections::VecDeque;
VecDeque::from(vec![$($x),*])
});
($($x:expr,)*) => ($crate::vec_deque![$($x),*])
}
macro_rules! const_assert {
($condition:expr) => {
#[deny(const_err)]
#[allow(dead_code)]
const ASSERT: usize = 0 - !$condition as usize;
};
}