1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
/// Macro for creating a [`ContiguousMap`](crate::ContiguousMap). /// /// ## Example /// ``` /// use contiguous_map::cmap; /// /// let map = cmap!(1 => 2); /// assert_eq!(1, map.len()); /// /// let map = cmap!( /// 1 => 2; /// 5 => 1, 2, 3; /// 9 => 7, 8; /// ); /// assert_eq!(&[1, 2, 3], map.get_slice(5..).unwrap()); /// ``` #[macro_export] macro_rules! cmap { ($($key:expr => $($value:expr),+ $(,)?);* $(;)?) => { { let mut _map = $crate::ContiguousMap::new(); $( let mut _key = ::std::option::Option::Some($key); $( let k = _key.unwrap(); _key = <_ as $crate::Key>::add_one(&k); _map.insert(k, $value); )+ )* _map } }; }