Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit addf633

Browse files
committedMar 4, 2025·
Added Clone implementation for ChunkBy
1 parent f9e0239 commit addf633

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed
 

‎library/alloc/tests/slice.rs

+13
Original file line numberDiff line numberDiff line change
@@ -1636,6 +1636,19 @@ fn test_chunk_by() {
16361636
assert_eq!(iter.next_back(), Some(&[1][..]));
16371637
assert_eq!(iter.next(), Some(&[2, 2, 2][..]));
16381638
assert_eq!(iter.next_back(), None);
1639+
1640+
let mut iter = slice.chunk_by(|a, b| a == b);
1641+
assert_eq!(iter.next(), Some(&[1, 1, 1][..]));
1642+
assert_eq!(iter.next(), Some(&[3, 3][..]));
1643+
let mut iter_clone = iter.clone();
1644+
assert_eq!(iter.next(), Some(&[2, 2, 2][..]));
1645+
assert_eq!(iter.next(), Some(&[1][..]));
1646+
assert_eq!(iter.next(), Some(&[0][..]));
1647+
assert_eq!(iter.next(), None);
1648+
assert_eq!(iter_clone.next(), Some(&[2, 2, 2][..]));
1649+
assert_eq!(iter_clone.next(), Some(&[1][..]));
1650+
assert_eq!(iter_clone.next(), Some(&[0][..]));
1651+
assert_eq!(iter_clone.next(), None);
16391652
}
16401653

16411654
#[test]

‎library/core/src/slice/iter.rs

+7
Original file line numberDiff line numberDiff line change
@@ -3372,6 +3372,13 @@ where
33723372
#[stable(feature = "slice_group_by", since = "1.77.0")]
33733373
impl<'a, T: 'a, P> FusedIterator for ChunkBy<'a, T, P> where P: FnMut(&T, &T) -> bool {}
33743374

3375+
#[stable(feature = "slice_group_by", since = "1.77.0")]
3376+
impl<'a, T: 'a, P: Clone> Clone for ChunkBy<'a, T, P> {
3377+
fn clone(&self) -> Self {
3378+
Self { slice: self.slice, predicate: self.predicate.clone() }
3379+
}
3380+
}
3381+
33753382
#[stable(feature = "slice_group_by", since = "1.77.0")]
33763383
impl<'a, T: 'a + fmt::Debug, P> fmt::Debug for ChunkBy<'a, T, P> {
33773384
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {

0 commit comments

Comments
 (0)
Please sign in to comment.