reth_trie/hashed_cursor/
noop.rs1use super::{HashedCursor, HashedCursorFactory, HashedStorageCursor};
2use alloy_primitives::B256;
3use reth_primitives::Account;
4use reth_storage_errors::db::DatabaseError;
5use revm::primitives::FlaggedStorage;
6
7#[derive(Default, Debug)]
9#[non_exhaustive]
10pub struct NoopHashedCursorFactory;
11
12impl HashedCursorFactory for NoopHashedCursorFactory {
13 type AccountCursor = NoopHashedAccountCursor;
14 type StorageCursor = NoopHashedStorageCursor;
15
16 fn hashed_account_cursor(&self) -> Result<Self::AccountCursor, DatabaseError> {
17 Ok(NoopHashedAccountCursor::default())
18 }
19
20 fn hashed_storage_cursor(
21 &self,
22 _hashed_address: B256,
23 ) -> Result<Self::StorageCursor, DatabaseError> {
24 Ok(NoopHashedStorageCursor::default())
25 }
26}
27
28#[derive(Default, Debug)]
30#[non_exhaustive]
31pub struct NoopHashedAccountCursor;
32
33impl HashedCursor for NoopHashedAccountCursor {
34 type Value = Account;
35
36 fn seek(&mut self, _key: B256) -> Result<Option<(B256, Self::Value)>, DatabaseError> {
37 Ok(None)
38 }
39
40 fn next(&mut self) -> Result<Option<(B256, Self::Value)>, DatabaseError> {
41 Ok(None)
42 }
43}
44
45#[derive(Default, Debug)]
47#[non_exhaustive]
48pub struct NoopHashedStorageCursor;
49
50impl HashedCursor for NoopHashedStorageCursor {
51 type Value = FlaggedStorage;
52
53 fn seek(&mut self, _key: B256) -> Result<Option<(B256, Self::Value)>, DatabaseError> {
54 Ok(None)
55 }
56
57 fn next(&mut self) -> Result<Option<(B256, Self::Value)>, DatabaseError> {
58 Ok(None)
59 }
60}
61
62impl HashedStorageCursor for NoopHashedStorageCursor {
63 fn is_storage_empty(&mut self) -> Result<bool, DatabaseError> {
64 Ok(true)
65 }
66}