]> git.lizzy.rs Git - rust.git/commitdiff
added zst iterator additions to final code
authorJonas Tepe <jonasprogrammer@gmail.com>
Sat, 16 Jan 2016 12:13:44 +0000 (13:13 +0100)
committerJonas Tepe <jonasprogrammer@gmail.com>
Sat, 16 Jan 2016 12:13:44 +0000 (13:13 +0100)
src/doc/nomicon/vec-final.md

index 52c22f65076f9def84f83bc2e57955e1bf49ea19..d0e5c7b0006d30a79bdd882bee12e33b17acbee6 100644 (file)
@@ -226,7 +226,11 @@ impl<T> Iterator for RawValIter<T> {
         } else {
             unsafe {
                 let result = ptr::read(self.start);
-                self.start = self.start.offset(1);
+                self.start = if mem::size_of::<T>() == 0 {
+                                       (self.start as usize + 1) as *const _
+                               } else {
+                                       self.start.offset(1)
+                               };
                 Some(result)
             }
         }
@@ -246,7 +250,11 @@ impl<T> DoubleEndedIterator for RawValIter<T> {
             None
         } else {
             unsafe {
-                self.end = self.end.offset(-1);
+                self.end = if mem::size_of::<T>() == 0 {
+                                       (self.end as usize - 1) as *const _
+                               } else {
+                                       self.end.offset(-1)
+                               };
                 Some(ptr::read(self.end))
             }
         }