From 244e9b0ed13e312ad7ed16be259d7396d17a3c4f Mon Sep 17 00:00:00 2001 From: Emil Ernerfeldt Date: Mon, 14 Apr 2025 14:47:46 +0200 Subject: [PATCH 1/3] Implement `Default` for `ScalarBuffer` --- arrow-buffer/src/buffer/scalar.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arrow-buffer/src/buffer/scalar.rs b/arrow-buffer/src/buffer/scalar.rs index 94dd7bcfc22e..8a47b8c44cea 100644 --- a/arrow-buffer/src/buffer/scalar.rs +++ b/arrow-buffer/src/buffer/scalar.rs @@ -48,6 +48,13 @@ pub struct ScalarBuffer { phantom: PhantomData, } +impl Default for ScalarBuffer { + #[inline] + fn default() -> Self { + Self::from(vec![]) + } +} + impl std::fmt::Debug for ScalarBuffer { fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { f.debug_tuple("ScalarBuffer").field(&self.as_ref()).finish() From abb649876cf6bc314f25db6210fa3c6e23778110 Mon Sep 17 00:00:00 2001 From: Emil Ernerfeldt Date: Mon, 14 Apr 2025 15:25:06 +0200 Subject: [PATCH 2/3] `impl Default for Buffer` --- arrow-buffer/src/buffer/immutable.rs | 7 +++++++ arrow-buffer/src/buffer/scalar.rs | 5 ++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/arrow-buffer/src/buffer/immutable.rs b/arrow-buffer/src/buffer/immutable.rs index fd145ce2306e..5d229a4967b0 100644 --- a/arrow-buffer/src/buffer/immutable.rs +++ b/arrow-buffer/src/buffer/immutable.rs @@ -82,6 +82,13 @@ pub struct Buffer { length: usize, } +impl Default for Buffer { + #[inline] + fn default() -> Self { + MutableBuffer::default().into() + } +} + impl PartialEq for Buffer { fn eq(&self, other: &Self) -> bool { self.as_slice().eq(other.as_slice()) diff --git a/arrow-buffer/src/buffer/scalar.rs b/arrow-buffer/src/buffer/scalar.rs index 8a47b8c44cea..5c65d4cd587b 100644 --- a/arrow-buffer/src/buffer/scalar.rs +++ b/arrow-buffer/src/buffer/scalar.rs @@ -51,7 +51,10 @@ pub struct ScalarBuffer { impl Default for ScalarBuffer { #[inline] fn default() -> Self { - Self::from(vec![]) + Self { + buffer: Default::default(), + phantom: Default::default(), + } } } From b97c042c72dd7861a708269cb96392f31fb904d7 Mon Sep 17 00:00:00 2001 From: Emil Ernerfeldt Date: Mon, 14 Apr 2025 15:27:07 +0200 Subject: [PATCH 3/3] Auto-derive Default --- arrow-buffer/src/buffer/scalar.rs | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/arrow-buffer/src/buffer/scalar.rs b/arrow-buffer/src/buffer/scalar.rs index 5c65d4cd587b..e0a59a3e0312 100644 --- a/arrow-buffer/src/buffer/scalar.rs +++ b/arrow-buffer/src/buffer/scalar.rs @@ -41,23 +41,13 @@ use std::ops::Deref; /// let sliced = buffer.slice(1, 2); /// assert_eq!(&sliced, &[2, 3]); /// ``` -#[derive(Clone)] +#[derive(Clone, Default)] pub struct ScalarBuffer { /// Underlying data buffer buffer: Buffer, phantom: PhantomData, } -impl Default for ScalarBuffer { - #[inline] - fn default() -> Self { - Self { - buffer: Default::default(), - phantom: Default::default(), - } - } -} - impl std::fmt::Debug for ScalarBuffer { fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { f.debug_tuple("ScalarBuffer").field(&self.as_ref()).finish()