summaryrefslogtreecommitdiffstats
path: root/vendor/itertools/src/groupbylazy.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/itertools/src/groupbylazy.rs')
-rw-r--r--vendor/itertools/src/groupbylazy.rs12
1 files changed, 10 insertions, 2 deletions
diff --git a/vendor/itertools/src/groupbylazy.rs b/vendor/itertools/src/groupbylazy.rs
index a5a321df4..80c6f09f3 100644
--- a/vendor/itertools/src/groupbylazy.rs
+++ b/vendor/itertools/src/groupbylazy.rs
@@ -19,7 +19,7 @@ impl<A, K, F: ?Sized> KeyFunction<A> for F
/// `ChunkIndex` acts like the grouping key function for `IntoChunks`
-#[derive(Debug)]
+#[derive(Debug, Clone)]
struct ChunkIndex {
size: usize,
index: usize,
@@ -50,7 +50,7 @@ impl<A> KeyFunction<A> for ChunkIndex {
}
}
-
+#[derive(Clone)]
struct GroupInner<K, I, F>
where I: Iterator
{
@@ -471,6 +471,13 @@ pub struct IntoChunks<I>
index: Cell<usize>,
}
+impl<I> Clone for IntoChunks<I>
+ where I: Clone + Iterator,
+ I::Item: Clone,
+{
+ clone_fields!(inner, index);
+}
+
impl<I> IntoChunks<I>
where I: Iterator,
@@ -507,6 +514,7 @@ impl<'a, I> IntoIterator for &'a IntoChunks<I>
///
/// See [`.chunks()`](crate::Itertools::chunks) for more information.
#[must_use = "iterator adaptors are lazy and do nothing unless consumed"]
+#[derive(Clone)]
pub struct Chunks<'a, I: 'a>
where I: Iterator,
I::Item: 'a,