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 {