chore(reth-provider): use Vec::with_capacity (#10912)

This commit is contained in:
nk_ysg
2024-09-17 17:37:51 +08:00
committed by GitHub
parent 0fd8132e90
commit acdb2050a7
5 changed files with 22 additions and 23 deletions

View File

@ -788,7 +788,7 @@ mod tests {
let bytes = hex!("f90288f90218a0fe21bb173f43067a9f90cfc59bbb6830a7a2929b5de4a61f372a9db28e87f9aea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a061effbbcca94f0d3e02e5bd22e986ad57142acabf0cb3d129a6ad8d0f8752e94a0d911c25e97e27898680d242b7780b6faef30995c355a2d5de92e6b9a7212ad3aa0056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2b90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008003834c4b408252081e80a00000000000000000000000000000000000000000000000000000000000000000880000000000000000842806be9da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f869f86702842806be9e82520894658bdf435d810c91414ec09147daa6db624063798203e880820a95a040ce7918eeb045ebf8c8b1887ca139d076bda00fa828a07881d442a72626c42da0156576a68e456e295e4c9cf67cf9f53151f329438916e0f24fc69d6bbb7fbacfc0c0");
let bytes_buf = &mut bytes.as_ref();
let block = Block::decode(bytes_buf).unwrap();
let mut encoded_buf = Vec::new();
let mut encoded_buf = Vec::with_capacity(bytes.len());
block.encode(&mut encoded_buf);
assert_eq!(bytes[..], encoded_buf);
}

View File

@ -524,7 +524,7 @@ mod tests {
fn encode_legacy_receipt() {
let expected = hex!("f901668001b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f85ff85d940000000000000000000000000000000000000011f842a0000000000000000000000000000000000000000000000000000000000000deada0000000000000000000000000000000000000000000000000000000000000beef830100ff");
let mut data = vec![];
let mut data = Vec::with_capacity(expected.length());
let receipt = ReceiptWithBloom {
receipt: Receipt {
tx_type: TxType::Legacy,
@ -605,7 +605,7 @@ mod tests {
let receipt = ReceiptWithBloom::decode(&mut &data[..]).unwrap();
assert_eq!(receipt, expected);
let mut buf = Vec::new();
let mut buf = Vec::with_capacity(data.len());
receipt.encode_inner(&mut buf, false);
assert_eq!(buf, &data[..]);
}
@ -631,7 +631,7 @@ mod tests {
let receipt = ReceiptWithBloom::decode(&mut &data[..]).unwrap();
assert_eq!(receipt, expected);
let mut buf = Vec::new();
let mut buf = Vec::with_capacity(data.len());
expected.encode_inner(&mut buf, false);
assert_eq!(buf, &data[..]);
}

View File

@ -1966,13 +1966,13 @@ mod tests {
// some random transactions pulled from hive tests
let data = hex!("b86f02f86c0705843b9aca008506fc23ac00830124f89400000000000000000000000000000000000003160180c001a00293c713e2f1eab91c366621ff2f867e05ad7e99d4aa5d069aafeb9e1e8c9b6aa05ec6c0605ff20b57c90a6484ec3b0509e5923733d06f9b69bee9a2dabe4f1352");
let tx = TransactionSigned::decode(&mut data.as_slice()).unwrap();
let mut b = Vec::new();
let mut b = Vec::with_capacity(data.len());
tx.encode(&mut b);
assert_eq!(data.as_slice(), b.as_slice());
let data = hex!("f865048506fc23ac00830124f8940000000000000000000000000000000000000316018032a06b8fdfdcb84790816b7af85b19305f493665fe8b4e7c51ffdd7cc144cd776a60a028a09ab55def7b8d6602ba1c97a0ebbafe64ffc9c8e89520cec97a8edfb2ebe9");
let tx = TransactionSigned::decode(&mut data.as_slice()).unwrap();
let mut b = Vec::new();
let mut b = Vec::with_capacity(data.len());
tx.encode(&mut b);
assert_eq!(data.as_slice(), b.as_slice());
}

View File

@ -487,7 +487,7 @@ mod tests {
fn compact_bytes() {
let arr = [1, 2, 3, 4, 5];
let list = Bytes::copy_from_slice(&arr);
let mut buf = vec![];
let mut buf = Vec::with_capacity(list.len() + 1);
assert_eq!(list.to_compact(&mut buf), list.len());
// Add some noise data.
@ -512,7 +512,7 @@ mod tests {
#[test]
fn compact_b256() {
let mut buf = vec![];
let mut buf = Vec::with_capacity(32 + 1);
assert_eq!(B256::ZERO.to_compact(&mut buf), 32);
assert_eq!(buf, vec![0; 32]);
@ -545,7 +545,7 @@ mod tests {
#[test]
fn compact_option() {
let opt = Some(B256::ZERO);
let mut buf = vec![];
let mut buf = Vec::with_capacity(1 + 32);
assert_eq!(None::<B256>.to_compact(&mut buf), 0);
assert_eq!(opt.to_compact(&mut buf), 1);
@ -556,7 +556,7 @@ mod tests {
// If `None`, it returns the slice at the same cursor position.
assert_eq!(Option::<B256>::from_compact(&buf, 0), (None, buf.as_slice()));
let mut buf = vec![];
let mut buf = Vec::with_capacity(32);
assert_eq!(opt.specialized_to_compact(&mut buf), 1);
assert_eq!(buf.len(), 32);
assert_eq!(Option::<B256>::specialized_from_compact(&buf, 1), (opt, vec![].as_slice()));
@ -605,7 +605,7 @@ mod tests {
assert_eq!(buf, vec![2u8]);
assert_eq!(u64::from_compact(&buf, 1), (2u64, vec![].as_slice()));
let mut buf = vec![];
let mut buf = Vec::with_capacity(8);
assert_eq!(0xffffffffffffffffu64.to_compact(&mut buf), 8);
assert_eq!(&buf, &[0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff]);
@ -683,18 +683,16 @@ mod tests {
#[test]
fn compact_test_struct() {
let test = TestStruct::default();
let mut buf = vec![];
assert_eq!(
test.to_compact(&mut buf),
2 + // TestStructFlags
const EXPECTED_SIZE: usize = 2 + // TestStructFlags
1 +
1 +
// 0 + 0 + 0 +
32 +
1 + 2 +
1 +
1 + 20 * 2
);
1 + 20 * 2;
let mut buf = Vec::with_capacity(EXPECTED_SIZE);
assert_eq!(test.to_compact(&mut buf), EXPECTED_SIZE);
assert_eq!(
TestStruct::from_compact(&buf, buf.len()),

View File

@ -707,6 +707,7 @@ impl<TX: DbTx> DatabaseProvider<TX> {
let block_requests = self.get::<tables::BlockRequests>(range.clone())?;
let block_tx = self.get_block_transaction_range(range)?;
let mut blocks = Vec::with_capacity(block_headers.len());
// merge all into block
let block_header_iter = block_headers.into_iter();
@ -721,9 +722,8 @@ impl<TX: DbTx> DatabaseProvider<TX> {
let mut block_withdrawals = block_withdrawals_iter.next();
let mut block_requests = block_requests_iter.next();
let mut blocks = Vec::new();
for ((main_block_number, header), (_, header_hash), (_, tx)) in
izip!(block_header_iter.into_iter(), block_header_hashes_iter, block_tx_iter)
izip!(block_header_iter, block_header_hashes_iter, block_tx_iter)
{
let header = header.seal(header_hash);
@ -842,7 +842,7 @@ impl<TX: DbTx> DatabaseProvider<TX> {
let mut receipt_iter =
self.get::<tables::Receipts>(from_transaction_num..=to_transaction_num)?.into_iter();
let mut receipts = Vec::new();
let mut receipts = Vec::with_capacity(block_bodies.len());
// loop break if we are at the end of the blocks.
for (_, block_body) in block_bodies {
let mut block_receipts = Vec::with_capacity(block_body.tx_count as usize);
@ -1140,7 +1140,7 @@ impl<TX: DbTxMut + DbTx> DatabaseProvider<TX> {
let mut receipt_iter =
self.take::<tables::Receipts>(from_transaction_num..=to_transaction_num)?.into_iter();
let mut receipts = Vec::new();
let mut receipts = Vec::with_capacity(block_bodies.len());
// loop break if we are at the end of the blocks.
for (_, block_body) in block_bodies {
let mut block_receipts = Vec::with_capacity(block_body.tx_count as usize);
@ -1407,6 +1407,8 @@ impl<TX: DbTxMut + DbTx> DatabaseProvider<TX> {
let block_requests = self.take::<tables::BlockRequests>(range.clone())?;
let block_tx = self.take_block_transaction_range(range.clone())?;
let mut blocks = Vec::with_capacity(block_headers.len());
// rm HeaderTerminalDifficulties
self.remove::<tables::HeaderTerminalDifficulties>(range)?;
@ -1423,9 +1425,8 @@ impl<TX: DbTxMut + DbTx> DatabaseProvider<TX> {
let mut block_withdrawals = block_withdrawals_iter.next();
let mut block_requests = block_requests_iter.next();
let mut blocks = Vec::new();
for ((main_block_number, header), (_, header_hash), (_, tx)) in
izip!(block_header_iter.into_iter(), block_header_hashes_iter, block_tx_iter)
izip!(block_header_iter, block_header_hashes_iter, block_tx_iter)
{
let header = header.seal(header_hash);