|
1 | 1 | use core::mem::MaybeUninit; |
| 2 | +use std::any::type_name; |
2 | 3 | use std::fmt::{Debug, Formatter}; |
3 | 4 | use std::ops::{Deref, DerefMut}; |
4 | 5 |
|
5 | 6 | use bytes::buf::UninitSlice; |
6 | 7 | use bytes::{Buf, BufMut, BytesMut}; |
7 | 8 | use vortex_error::{vortex_panic, VortexExpect}; |
8 | 9 |
|
| 10 | +use crate::debug::TruncatedDebug; |
9 | 11 | use crate::{Alignment, Buffer, ByteBufferMut}; |
10 | 12 |
|
11 | 13 | /// A mutable buffer that maintains a runtime-defined alignment through resizing operations. |
@@ -338,21 +340,13 @@ impl<T> Clone for BufferMut<T> { |
338 | 340 | } |
339 | 341 | } |
340 | 342 |
|
341 | | -impl<T> Debug for BufferMut<T> { |
| 343 | +impl<T: Debug> Debug for BufferMut<T> { |
342 | 344 | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { |
343 | | - const TRUNC_SIZE: usize = 512; |
344 | | - let mut binding = f.debug_struct("Buffer"); |
345 | | - let mut fields = binding |
| 345 | + f.debug_struct(&format!("BufferMut<{}>", type_name::<T>())) |
346 | 346 | .field("length", &self.length) |
347 | | - .field("alignment", &self.alignment); |
348 | | - |
349 | | - let mut bytes = self.bytes.clone(); |
350 | | - if bytes.len() > TRUNC_SIZE { |
351 | | - fields = fields.field("truncated", &true); |
352 | | - } |
353 | | - |
354 | | - bytes.truncate(TRUNC_SIZE); |
355 | | - fields.field("bytes", &bytes).finish() |
| 347 | + .field("alignment", &self.alignment) |
| 348 | + .field("as_slice", &TruncatedDebug(self.as_slice())) |
| 349 | + .finish() |
356 | 350 | } |
357 | 351 | } |
358 | 352 |
|
|
0 commit comments