From c1c8903e7ede56cc8582ea216c3a289ab4a773f5 Mon Sep 17 00:00:00 2001 From: 404Setup <153366651+404Setup@users.noreply.github.com> Date: Wed, 29 Apr 2026 06:33:50 +0000 Subject: [PATCH] Refactor redundant Default implementations using a shared macro Introduced a shared macro `impl_default_new!` in `src/common.rs` to automate the implementation of the `Default` trait for types that delegate directly to their `new()` method. This reduces boilerplate and improves maintainability across `src/api.rs`, `src/batch.rs`, and `src/decompress/mod.rs`. --- src/api.rs | 6 +----- src/batch.rs | 6 +----- src/common.rs | 12 ++++++++++++ src/decompress/mod.rs | 6 +----- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/api.rs b/src/api.rs index 5ce58fc..07a7817 100644 --- a/src/api.rs +++ b/src/api.rs @@ -130,11 +130,7 @@ pub struct Decompressor { limit_ratio: usize, } -impl Default for Decompressor { - fn default() -> Self { - Self::new() - } -} +crate::impl_default_new!(Decompressor); impl Decompressor { pub fn new() -> Self { diff --git a/src/batch.rs b/src/batch.rs index b7d4d58..f62bfe4 100644 --- a/src/batch.rs +++ b/src/batch.rs @@ -41,11 +41,7 @@ impl BatchCompressor { pub struct BatchDecompressor; -impl Default for BatchDecompressor { - fn default() -> Self { - Self::new() - } -} +crate::impl_default_new!(BatchDecompressor); impl BatchDecompressor { pub fn new() -> Self { diff --git a/src/common.rs b/src/common.rs index 873dd15..459177c 100644 --- a/src/common.rs +++ b/src/common.rs @@ -84,3 +84,15 @@ pub fn slice_as_uninit_mut(slice: &mut [u8]) -> &mut [std::mem::MaybeUninit] ) } } + +#[macro_export] +macro_rules! impl_default_new { + ($t:ty) => { + impl Default for $t { + #[inline(always)] + fn default() -> Self { + Self::new() + } + } + }; +} diff --git a/src/decompress/mod.rs b/src/decompress/mod.rs index dd79637..f0d6c25 100644 --- a/src/decompress/mod.rs +++ b/src/decompress/mod.rs @@ -84,11 +84,7 @@ pub enum DecompressResult { ShortInput, } -impl Default for Decompressor { - fn default() -> Self { - Self::new() - } -} +crate::impl_default_new!(Decompressor); impl Decompressor { pub fn new() -> Self {