#[macro_export]
macro_rules! ordermap_with_default {
($H:ty; $($key:expr => $value:expr,)+) => { $crate::ordermap_with_default!($H; $($key => $value),+) };
($H:ty; $($key:expr => $value:expr),*) => {{
let builder = ::core::hash::BuildHasherDefault::<$H>::default();
const CAP: usize = <[()]>::len(&[$({ stringify!($key); }),*]);
#[allow(unused_mut)]
let mut map = $crate::OrderMap::with_capacity_and_hasher(CAP, builder);
$(
map.insert($key, $value);
)*
map
}};
}
#[cfg(feature = "std")]
#[cfg_attr(docsrs, doc(cfg(feature = "std")))]
#[macro_export]
macro_rules! ordermap {
($($key:expr => $value:expr,)+) => { $crate::ordermap!($($key => $value),+) };
($($key:expr => $value:expr),*) => {
{
const CAP: usize = <[()]>::len(&[$({ stringify!($key); }),*]);
let mut map = $crate::OrderMap::with_capacity(CAP);
$(
map.insert($key, $value);
)*
map
}
};
}
#[macro_export]
macro_rules! orderset_with_default {
($H:ty; $($value:expr,)+) => { $crate::orderset_with_default!($H; $($value),+) };
($H:ty; $($value:expr),*) => {{
let builder = ::core::hash::BuildHasherDefault::<$H>::default();
const CAP: usize = <[()]>::len(&[$({ stringify!($value); }),*]);
#[allow(unused_mut)]
let mut set = $crate::OrderSet::with_capacity_and_hasher(CAP, builder);
$(
set.insert($value);
)*
set
}};
}
#[cfg(feature = "std")]
#[cfg_attr(docsrs, doc(cfg(feature = "std")))]
#[macro_export]
macro_rules! orderset {
($($value:expr,)+) => { $crate::orderset!($($value),+) };
($($value:expr),*) => {
{
const CAP: usize = <[()]>::len(&[$({ stringify!($value); }),*]);
let mut set = $crate::OrderSet::with_capacity(CAP);
$(
set.insert($value);
)*
set
}
};
}