about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorAndrew Paseltiner <apaseltiner@gmail.com>2015-09-29 18:35:33 -0400
committerAndrew Paseltiner <apaseltiner@gmail.com>2015-09-29 18:35:33 -0400
commit532ee3c6d6907bd683c643756c1842446ed62faa (patch)
tree8a9a2f83f25081bf196e09ea376a5d37fa678192 /src
parent5f06607e23783ba0fbcd8a6a7d2a516507fda4a7 (diff)
downloadrust-532ee3c6d6907bd683c643756c1842446ed62faa.tar.gz
rust-532ee3c6d6907bd683c643756c1842446ed62faa.zip
Derive `Clone` for `Peekable`
Diffstat (limited to 'src')
-rw-r--r--src/libcore/iter.rs10
1 files changed, 1 insertions, 9 deletions
diff --git a/src/libcore/iter.rs b/src/libcore/iter.rs
index 97dcb2475a3..b493745fc2c 100644
--- a/src/libcore/iter.rs
+++ b/src/libcore/iter.rs
@@ -1862,6 +1862,7 @@ impl<I> DoubleEndedIterator for Enumerate<I> where
 }
 
 /// An iterator with a `peek()` that returns an optional reference to the next element.
+#[derive(Clone)]
 #[must_use = "iterator adaptors are lazy and do nothing unless consumed"]
 #[stable(feature = "rust1", since = "1.0.0")]
 pub struct Peekable<I: Iterator> {
@@ -1869,15 +1870,6 @@ pub struct Peekable<I: Iterator> {
     peeked: Option<I::Item>,
 }
 
-impl<I: Iterator + Clone> Clone for Peekable<I> where I::Item: Clone {
-    fn clone(&self) -> Peekable<I> {
-        Peekable {
-            iter: self.iter.clone(),
-            peeked: self.peeked.clone(),
-        }
-    }
-}
-
 #[stable(feature = "rust1", since = "1.0.0")]
 impl<I: Iterator> Iterator for Peekable<I> {
     type Item = I::Item;