From 4f037c4d9885215ce73de53003756d2e64ec766e Mon Sep 17 00:00:00 2001 From: Nadav Ivgi Date: Wed, 26 Jun 2024 19:01:28 +0300 Subject: [PATCH] Refactor lookup_txos() to use zip() Following https://github.com/Blockstream/electrs/pull/89#discussion_r1632706930 --- src/new_index/schema.rs | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/new_index/schema.rs b/src/new_index/schema.rs index d738050a1..bbb2e2946 100644 --- a/src/new_index/schema.rs +++ b/src/new_index/schema.rs @@ -1030,16 +1030,15 @@ fn get_previous_txos(block_entries: &[BlockEntry]) -> BTreeSet { fn lookup_txos(txstore_db: &DB, outpoints: BTreeSet) -> Result> { let keys = outpoints.iter().map(TxOutRow::key).collect::>(); - let mut remain_outpoints = outpoints.into_iter(); txstore_db .multi_get(keys) .into_iter() - .map(|res| { - let outpoint = remain_outpoints.next().unwrap(); - match res.unwrap() { - Some(txo) => Ok((outpoint, deserialize(&txo).expect("failed to parse TxOut"))), - None => Err(format!("missing txo {}", outpoint).into()), - } + .zip(outpoints) + .map(|(res, outpoint)| { + let txo = res + .unwrap() + .ok_or_else(|| format!("missing txo {}", outpoint))?; + Ok((outpoint, deserialize(&txo).expect("failed to parse TxOut"))) }) .collect() }