From be1ad3a4f041df2439083fa74f1dc57e2b880e1c Mon Sep 17 00:00:00 2001 From: Zeeshan Ali Khan Date: Tue, 10 Jun 2025 21:53:06 +0200 Subject: [PATCH] Add missing `Debug` derive to `vec::IntoIter` --- CHANGELOG.md | 1 + src/vec/mod.rs | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3ba060d326..85cf1c358c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/). - `bytes::BufMut` is now implemented on `VecInner`. - Removed generic from `history_buf::OldestOrdered`. - Made `LenType` opt-in. +- Add missing `Debug` derive to `vec::IntoIter`. ### Fixed diff --git a/src/vec/mod.rs b/src/vec/mod.rs index 5a417964df..29ad3e5726 100644 --- a/src/vec/mod.rs +++ b/src/vec/mod.rs @@ -1495,6 +1495,31 @@ where } } +impl core::fmt::Debug for IntoIter +where + T: core::fmt::Debug, +{ + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + let s = if self.next < self.vec.len { + unsafe { + slice::from_raw_parts( + self.vec + .buffer + .buffer + .as_ptr() + .cast::() + .add(self.next.into_usize()), + (self.vec.len - self.next).into_usize(), + ) + } + } else { + &[] + }; + + write!(f, "{s:?}") + } +} + impl Drop for IntoIter { fn drop(&mut self) { unsafe {