diff options
| author | Jorge Aparicio <japaricious@gmail.com> | 2015-01-31 12:05:58 -0500 |
|---|---|---|
| committer | Jorge Aparicio <japaricious@gmail.com> | 2015-02-02 13:38:32 -0500 |
| commit | 9f90d666e0cd9a73ef35b76b6605f9d1f69df849 (patch) | |
| tree | 9e7a5d7ecd7d455380d59e86cc51179edaf3275a | |
| parent | afabb022b026ba021a3bbb0c0c465b6f66a41395 (diff) | |
| download | rust-9f90d666e0cd9a73ef35b76b6605f9d1f69df849.tar.gz rust-9f90d666e0cd9a73ef35b76b6605f9d1f69df849.zip | |
impl IntoIterator for HashSet
| -rw-r--r-- | src/libstd/collections/hash/set.rs | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/src/libstd/collections/hash/set.rs b/src/libstd/collections/hash/set.rs index c6dcb0d230f..755235cbace 100644 --- a/src/libstd/collections/hash/set.rs +++ b/src/libstd/collections/hash/set.rs @@ -18,7 +18,9 @@ use default::Default; use fmt::Debug; use fmt; use hash::{self, Hash}; -use iter::{Iterator, ExactSizeIterator, IteratorExt, FromIterator, Map, Chain, Extend}; +use iter::{ + Iterator, IntoIterator, ExactSizeIterator, IteratorExt, FromIterator, Map, Chain, Extend, +}; use ops::{BitOr, BitAnd, BitXor, Sub}; use option::Option::{Some, None, self}; @@ -833,6 +835,30 @@ pub struct Union<'a, T: 'a, S: 'a> { iter: Chain<Iter<'a, T>, Difference<'a, T, S>> } +impl<'a, T, S, H> IntoIterator for &'a HashSet<T, S> + where T: Eq + Hash<H>, + S: HashState<Hasher=H>, + H: hash::Hasher<Output=u64> +{ + type Iter = Iter<'a, T>; + + fn into_iter(self) -> Iter<'a, T> { + self.iter() + } +} + +impl<T, S, H> IntoIterator for HashSet<T, S> + where T: Eq + Hash<H>, + S: HashState<Hasher=H>, + H: hash::Hasher<Output=u64> +{ + type Iter = IntoIter<T>; + + fn into_iter(self) -> IntoIter<T> { + self.into_iter() + } +} + #[stable(feature = "rust1", since = "1.0.0")] impl<'a, K> Iterator for Iter<'a, K> { type Item = &'a K; |
