(&mut self)
| 77 | } |
| 78 | |
| 79 | pub fn clear(&mut self) { |
| 80 | // Safety: same as `Vec::clear` except `self.end = self.start` instead of `self.len = 0` but |
| 81 | // these are equivalent operations. Can't use `self.mut_vec(Vec::clear)` because T::drop |
| 82 | // panicking would double free elements. |
| 83 | unsafe { |
| 84 | let elems: *mut [T] = self.as_mut_slice(); |
| 85 | self.end = self.start; |
| 86 | std::ptr::drop_in_place(elems); |
| 87 | } |
| 88 | } |
| 89 | |
| 90 | pub fn reserve(&mut self, additional: usize) { |
| 91 | if additional > sub_ptr(self.capacity, self.end) { |
no test coverage detected