Like `resize` but returns an error on allocation failure.
(&mut self, n: usize)
| 184 | |
| 185 | /// Like `resize` but returns an error on allocation failure. |
| 186 | pub fn try_resize(&mut self, n: usize) -> Result<(), OutOfMemory> { |
| 187 | if self.elems.capacity() < n { |
| 188 | self.elems |
| 189 | .try_reserve(n - self.elems.len()) |
| 190 | .map_err(|_| OutOfMemory::new(core::mem::size_of::<V>().saturating_mul(n)))?; |
| 191 | } |
| 192 | debug_assert!(self.elems.capacity() >= n); |
| 193 | self.elems.resize(n, self.default.clone()); |
| 194 | Ok(()) |
| 195 | } |
| 196 | |
| 197 | /// Get this map's underlying values as a slice. |
| 198 | pub fn as_values_slice(&self) -> &[V] { |