From c8ca989c0786258d2024c04fd9633056c25a8ffb Mon Sep 17 00:00:00 2001 From: Huon Wilson Date: Sat, 10 Aug 2013 00:44:35 +1000 Subject: [PATCH] std: add a Clone impl for HashSet. --- src/libstd/hashmap.rs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/libstd/hashmap.rs b/src/libstd/hashmap.rs index 84cba254dcf..623d395f60d 100644 --- a/src/libstd/hashmap.rs +++ b/src/libstd/hashmap.rs @@ -745,6 +745,14 @@ impl HashSet { } +impl Clone for HashSet { + fn clone(&self) -> HashSet { + HashSet { + map: self.map.clone() + } + } +} + impl> FromIterator for HashSet { fn from_iterator(iter: &mut T) -> HashSet { let (lower, _) = iter.size_hint(); @@ -1190,4 +1198,22 @@ mod test_set { let v = hs.consume().collect::<~[char]>(); assert!(['a', 'b'] == v || ['b', 'a'] == v); } + + #[test] + fn test_eq() { + let mut s1 = HashSet::new(); + s1.insert(1); + s1.insert(2); + s1.insert(3); + + let mut s2 = HashSet::new(); + s2.insert(1); + s2.insert(2); + + assert!(s1 != s2); + + s2.insert(3); + + assert_eq!(s1, s2); + } }