diff --git a/storage-bigtable/src/bigtable.rs b/storage-bigtable/src/bigtable.rs index 683aee3bca..2e17b60e11 100644 --- a/storage-bigtable/src/bigtable.rs +++ b/storage-bigtable/src/bigtable.rs @@ -683,14 +683,17 @@ impl) -> InterceptedRequestResult> BigTable { pub async fn get_protobuf_or_bincode_cells<'a, B, P>( &mut self, table: &'a str, - row_keys: impl Iterator, + row_keys: impl IntoIterator, ) -> Result)> + 'a> where B: serde::de::DeserializeOwned, P: prost::Message + Default, { Ok(self - .get_multi_row_data(table, row_keys.collect::>().as_slice()) + .get_multi_row_data( + table, + row_keys.into_iter().collect::>().as_slice(), + ) .await? .into_iter() .map(|(key, row_data)| { diff --git a/storage-bigtable/src/lib.rs b/storage-bigtable/src/lib.rs index 4f61b9f478..cdb152991e 100644 --- a/storage-bigtable/src/lib.rs +++ b/storage-bigtable/src/lib.rs @@ -456,10 +456,10 @@ impl LedgerStorage { } // Fetches and gets a vector of confirmed blocks via a multirow fetch - pub async fn get_confirmed_blocks_with_data( + pub async fn get_confirmed_blocks_with_data<'a>( &self, - slots: &[Slot], - ) -> Result> { + slots: &'a [Slot], + ) -> Result + 'a> { debug!( "LedgerStorage::get_confirmed_blocks_with_data request received: {:?}", slots @@ -467,7 +467,7 @@ impl LedgerStorage { inc_new_counter_debug!("storage-bigtable-query", 1); let mut bigtable = self.connection.client(); let row_keys = slots.iter().copied().map(slot_to_blocks_key); - let data: Vec<(Slot, ConfirmedBlock)> = bigtable + let data = bigtable .get_protobuf_or_bincode_cells("blocks", row_keys) .await? .filter_map( @@ -481,8 +481,7 @@ impl LedgerStorage { }; Some((key_to_slot(&row_key).unwrap(), block)) }, - ) - .collect(); + ); Ok(data) }