Skip to content

Commit 96e6b8b

Browse files
starknet_patricia_storage: remove code dup for mget
1 parent 1729e41 commit 96e6b8b

File tree

1 file changed

+12
-14
lines changed

1 file changed

+12
-14
lines changed

crates/starknet_patricia_storage/src/rocksdb_storage.rs

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,16 @@ impl RocksDbStorage {
256256
let db = Arc::new(DB::open(&options.db_options, path)?);
257257
Ok(Self { db, options: Arc::new(options), config })
258258
}
259+
260+
fn mget_from_raw_keys<K: AsRef<[u8]>, RK: IntoIterator<Item = K>>(
261+
raw_keys: RK,
262+
db: Arc<DB>,
263+
) -> PatriciaStorageResult<Vec<Option<DbValue>>> {
264+
db.multi_get(raw_keys)
265+
.into_iter()
266+
.map(|r| r.map(|opt| opt.map(DbValue)).map_err(|e| e.into()))
267+
.collect::<Result<Vec<_>, PatriciaStorageError>>()
268+
}
259269
}
260270

261271
#[derive(Debug, Default)]
@@ -300,22 +310,10 @@ impl Storage for RocksDbStorage {
300310
if self.config.spawn_blocking_reads {
301311
let db = self.db.clone();
302312
let keys: Vec<Vec<u8>> = keys.iter().map(|k| k.0.clone()).collect();
303-
Ok(spawn_blocking(move || {
304-
let raw_keys = keys.iter().map(|k| k.as_slice());
305-
db.multi_get(raw_keys)
306-
.into_iter()
307-
.map(|r| r.map(|opt| opt.map(DbValue)).map_err(|e| e.into()))
308-
.collect::<Result<Vec<_>, PatriciaStorageError>>()
309-
})
310-
.await??)
313+
Ok(spawn_blocking(move || Self::mget_from_raw_keys(keys, db)).await??)
311314
} else {
312315
let raw_keys = keys.iter().map(|k| k.0.as_slice());
313-
Ok(self
314-
.db
315-
.multi_get(raw_keys)
316-
.into_iter()
317-
.map(|r| r.map(|opt| opt.map(DbValue)).map_err(|e| e.into()))
318-
.collect::<Result<Vec<_>, PatriciaStorageError>>()?)
316+
Ok(Self::mget_from_raw_keys(raw_keys, self.db.clone())?)
319317
}
320318
}
321319

0 commit comments

Comments
 (0)