From 6ab37bdca4e0f9a8172761683fb39e13d59222c7 Mon Sep 17 00:00:00 2001 From: Snezhkko Date: Thu, 6 Nov 2025 22:56:19 +0200 Subject: [PATCH] feat: make BigUint::serialized_size allocation-free --- serialize/src/impls/int_like.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/serialize/src/impls/int_like.rs b/serialize/src/impls/int_like.rs index ec324e991..11000d752 100644 --- a/serialize/src/impls/int_like.rs +++ b/serialize/src/impls/int_like.rs @@ -210,8 +210,14 @@ impl CanonicalSerialize for BigUint { } #[inline] - fn serialized_size(&self, compress: Compress) -> usize { - self.to_bytes_le().serialized_size(compress) + fn serialized_size(&self, _compress: Compress) -> usize { + let bits = self.bits(); + let byte_len = if bits == 0 { + 1 + } else { + ((bits + 7) / 8) as usize + }; + 8 + byte_len } }