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