about summary refs log tree commit diff
path: root/src/libcollections/enum_set.rs
diff options
context:
space:
mode:
authorgamazeps <gamaz3ps@gmail.com>2014-11-08 01:40:20 +0100
committergamazeps <gamaz3ps@gmail.com>2014-11-08 15:02:09 +0100
commita11f16739f08ec480263ba549d510fffc8ce557e (patch)
treeaabc9d4b9fc8aef5405aa758ab8f3f659f6942b8 /src/libcollections/enum_set.rs
parent16c8cd931cd5ccc9c73b87cac488938556018019 (diff)
downloadrust-a11f16739f08ec480263ba549d510fffc8ce557e.tar.gz
rust-a11f16739f08ec480263ba549d510fffc8ce557e.zip
Implements Extend for EnumSet and LruCache
Part of #18424
Diffstat (limited to 'src/libcollections/enum_set.rs')
-rw-r--r--src/libcollections/enum_set.rs16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/libcollections/enum_set.rs b/src/libcollections/enum_set.rs
index 1acdaef9c91..7d2d298ee87 100644
--- a/src/libcollections/enum_set.rs
+++ b/src/libcollections/enum_set.rs
@@ -230,6 +230,22 @@ impl<E:CLike> Iterator<E> for Items<E> {
     }
 }
 
+impl<E:CLike> FromIterator<E> for EnumSet<E> {
+    fn from_iter<I:Iterator<E>>(iterator: I) -> EnumSet<E> {
+        let mut ret = EnumSet::new();
+        ret.extend(iterator);
+        ret
+    }
+}
+
+impl<E:CLike> Extend<E> for EnumSet<E> {
+    fn extend<I: Iterator<E>>(&mut self, mut iterator: I) {
+        for element in iterator {
+            self.insert(element);
+        }
+    }
+}
+
 #[cfg(test)]
 mod test {
     use std::prelude::*;