| 434 | // exits. |
| 435 | #[inline(always)] |
| 436 | pub fn resize(&mut self, new_len: usize, value: u8) { |
| 437 | if new_len > self.len { |
| 438 | let diff = new_len - self.len; |
| 439 | self.reserve(diff); |
| 440 | // write the value |
| 441 | unsafe { self.data.as_ptr().add(self.len).write_bytes(value, diff) }; |
| 442 | } |
| 443 | // this truncates the buffer when new_len < self.len |
| 444 | self.len = new_len; |
| 445 | #[cfg(feature = "pool")] |
| 446 | { |
| 447 | if let Some(reservation) = self.reservation.lock().unwrap().as_mut() { |
| 448 | reservation.resize(self.len); |
| 449 | } |
| 450 | } |
| 451 | } |
| 452 | |
| 453 | /// Shrinks the capacity of the buffer as much as possible. |
| 454 | /// The new capacity will aligned to the nearest 64 bit alignment. |