]> git.lizzy.rs Git - rust.git/commitdiff
Derive `Clone` for `Peekable`
authorAndrew Paseltiner <apaseltiner@gmail.com>
Tue, 29 Sep 2015 22:35:33 +0000 (18:35 -0400)
committerAndrew Paseltiner <apaseltiner@gmail.com>
Tue, 29 Sep 2015 22:35:33 +0000 (18:35 -0400)
src/libcore/iter.rs

index 97dcb2475a3cf3dfc95927d6c4cf930a8c8da582..b493745fc2c77f549786eab079884c445b81909d 100644 (file)
@@ -1862,6 +1862,7 @@ fn next_back(&mut self) -> Option<(usize, <I as Iterator>::Item)> {
 }
 
 /// 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;