On Tue Mar 18, 2025 at 9:12 PM CET, Tamir Duberstein wrote: > On Sun, Mar 16, 2025 at 7:17 AM Andrew Ballance > <andrewjballance@xxxxxxxxx> wrote: >> + pub fn resize(&mut self, new_len: usize, value: T, flags: Flags) -> Result<(), AllocError> { >> + if new_len > self.len() { >> + self.extend_with(new_len - self.len(), value, flags) >> + } else { >> + self.truncate(new_len); >> + Ok(()) >> + } >> + } > > You can avoid underflow checking in debug builds by using `checked_sub`: `checked_sub` doesn't only avoid underflow in debug builds, but rather in all builds. But the code below is a good suggestion. --- Cheers, Benno > match new_len.checked_sub(self.len()) { > Some(n) => self.extend_with(n, value, flags), > None => { > self.truncate(new_len); > Ok(()) > } > } > >> } >> >> impl<T, A> Drop for Vec<T, A> >> -- >> 2.48.1 >> >> > > Either way: > > Reviewed-by: Tamir Duberstein <tamird@xxxxxxxxx>