From 057f38d6933207fb2e39c32f94269db83e7f1db2 Mon Sep 17 00:00:00 2001 From: troido Date: Tue, 4 Feb 2020 10:07:57 +0100 Subject: added some unit tests; added hashmap! macro --- src/util.rs | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'src/util.rs') diff --git a/src/util.rs b/src/util.rs index fed0400..7f3c7cd 100644 --- a/src/util.rs +++ b/src/util.rs @@ -10,3 +10,31 @@ pub fn clamp(val: T, lower: T, upper: T) -> T{ pub trait ToJson { fn to_json(&self) -> Value; } + +#[macro_export] +macro_rules! hashmap { + ( $($key:expr => $value:expr ),* ) => {{ + #[allow(unused_mut)] + let mut h = std::collections::HashMap::new(); + $( + h.insert($key, $value); + )* + h + }} +} + +#[cfg(test)] +mod tests { + use std::collections::HashMap; + #[test] + fn test_hashmap_macro() { + let mut h = hashmap!("hello" => 1, "world" => 2); + assert_eq!(h.remove("hello"), Some(1)); + assert_eq!(h.remove("world"), Some(2)); + assert!(h.is_empty()); + let h2: HashMap = hashmap!(); + assert!(h2.is_empty()); + assert_eq!(h2, HashMap::new()); + + } +} -- cgit