From deeb160b86e5e025ea98494b5d30611e47dc8769 Mon Sep 17 00:00:00 2001 From: Riccardo Casatta Date: Fri, 10 May 2024 11:33:29 +0200 Subject: [PATCH] remove SmallVec --- base58/src/lib.rs | 41 +++++------------------------------------ 1 file changed, 5 insertions(+), 36 deletions(-) diff --git a/base58/src/lib.rs b/base58/src/lib.rs index 0b8e666f1..9536f4ee3 100644 --- a/base58/src/lib.rs +++ b/base58/src/lib.rs @@ -31,7 +31,7 @@ pub mod error; #[cfg(not(feature = "std"))] pub use alloc::{string::String, vec::Vec}; -use core::{fmt, iter, slice, str}; +use core::{fmt, str}; #[cfg(feature = "std")] pub use std::{string::String, vec::Vec}; @@ -118,7 +118,9 @@ pub fn decode_check(data: &str) -> Result, Error> { } /// Encodes `data` as a base58 string (see also `base58::encode_check()`). -pub fn encode(data: &[u8]) -> String { encode_iter(data.iter().cloned()) } +pub fn encode(data: &[u8]) -> String { + encode_iter(data.iter().cloned()) +} /// Encodes `data` as a base58 string including the checksum. /// @@ -151,7 +153,7 @@ where I: Iterator + Clone, W: fmt::Write, { - let mut ret = SmallVec::new(); + let mut ret = Vec::with_capacity(128); let mut leading_zero_count = 0; let mut leading_zeroes = true; @@ -187,37 +189,6 @@ where Ok(()) } -/// Vector-like object that holds the first 100 elements on the stack. If more space is needed it -/// will be allocated on the heap. -struct SmallVec { - len: usize, - stack: [T; 100], - heap: Vec, -} - -impl SmallVec { - fn new() -> SmallVec { SmallVec { len: 0, stack: [T::default(); 100], heap: Vec::new() } } - - fn push(&mut self, val: T) { - if self.len < 100 { - self.stack[self.len] = val; - self.len += 1; - } else { - self.heap.push(val); - } - } - - fn iter(&self) -> iter::Chain, slice::Iter> { - // If len<100 then we just append an empty vec - self.stack[0..self.len].iter().chain(self.heap.iter()) - } - - fn iter_mut(&mut self) -> iter::Chain, slice::IterMut> { - // If len<100 then we just append an empty vec - self.stack[0..self.len].iter_mut().chain(self.heap.iter_mut()) - } -} - #[cfg(test)] mod tests { use hex::test_hex_unwrap as hex; @@ -288,7 +259,6 @@ mod tests { } } - #[cfg(bench)] mod benches { use test::{black_box, Bencher}; @@ -312,5 +282,4 @@ mod benches { black_box(&r); }); } - }