]> git.lizzy.rs Git - rust.git/commitdiff
implement `ExactSizeIterator` for `slice::{Chunks,ChunksMut}`
authorAndrew Paseltiner <apaseltiner@gmail.com>
Mon, 12 Jan 2015 22:08:53 +0000 (17:08 -0500)
committerAndrew Paseltiner <apaseltiner@gmail.com>
Wed, 21 Jan 2015 03:44:22 +0000 (22:44 -0500)
src/libcollections/slice.rs
src/libcore/slice.rs

index 4812ecc2c0b754b7a3a83b58dd1f43446271b495..9787c62580668d4a92de50d1ed0af10413cf737c 100644 (file)
@@ -2409,8 +2409,12 @@ fn test_windowsator_0() {
 
     #[test]
     fn test_chunksator() {
+        use core::iter::ExactSizeIterator;
+
         let v = &[1i,2,3,4,5];
 
+        assert_eq!(v.chunks(2).len(), 3);
+
         let chunks: &[&[int]] = &[&[1i,2], &[3,4], &[5]];
         assert_eq!(v.chunks(2).collect::<Vec<&[int]>>(), chunks);
         let chunks: &[&[int]] = &[&[1i,2,3], &[4,5]];
@@ -2675,7 +2679,10 @@ fn test_get_mut() {
 
     #[test]
     fn test_mut_chunks() {
+        use core::iter::ExactSizeIterator;
+
         let mut v = [0u8, 1, 2, 3, 4, 5, 6];
+        assert_eq!(v.chunks_mut(2).len(), 4);
         for (i, chunk) in v.chunks_mut(3).enumerate() {
             for x in chunk.iter_mut() {
                 *x = i as u8;
index 22da168911daad66f84a6bc6a731408cfbae17c0..c31e15795e667165a9b77fce361d32ec2843a94e 100644 (file)
@@ -1269,6 +1269,9 @@ fn next_back(&mut self) -> Option<&'a [T]> {
     }
 }
 
+#[stable]
+impl<'a, T> ExactSizeIterator for Chunks<'a, T> {}
+
 #[unstable = "trait is experimental"]
 impl<'a, T> RandomAccessIterator for Chunks<'a, T> {
     #[inline]
@@ -1347,6 +1350,8 @@ fn next_back(&mut self) -> Option<&'a mut [T]> {
     }
 }
 
+#[stable]
+impl<'a, T> ExactSizeIterator for ChunksMut<'a, T> {}
 
 //
 // Free functions