reth_trie/trie_cursor/
noop.rs1use super::{TrieCursor, TrieCursorFactory, TrieStorageCursor};
2use crate::{BranchNodeCompact, Nibbles};
3use alloy_primitives::B256;
4use reth_storage_errors::db::DatabaseError;
5
6#[derive(Clone, Default, Debug)]
8#[non_exhaustive]
9pub struct NoopTrieCursorFactory;
10
11impl TrieCursorFactory for NoopTrieCursorFactory {
12 type AccountTrieCursor<'a>
13 = NoopAccountTrieCursor
14 where
15 Self: 'a;
16
17 type StorageTrieCursor<'a>
18 = NoopStorageTrieCursor
19 where
20 Self: 'a;
21
22 fn account_trie_cursor(&self) -> Result<Self::AccountTrieCursor<'_>, DatabaseError> {
24 Ok(NoopAccountTrieCursor::default())
25 }
26
27 fn storage_trie_cursor(
29 &self,
30 _hashed_address: B256,
31 ) -> Result<Self::StorageTrieCursor<'_>, DatabaseError> {
32 Ok(NoopStorageTrieCursor::default())
33 }
34}
35
36#[derive(Default, Debug)]
38#[non_exhaustive]
39pub struct NoopAccountTrieCursor;
40
41impl TrieCursor for NoopAccountTrieCursor {
42 fn seek_exact(
43 &mut self,
44 _key: Nibbles,
45 ) -> Result<Option<(Nibbles, BranchNodeCompact)>, DatabaseError> {
46 Ok(None)
47 }
48
49 fn seek(
50 &mut self,
51 _key: Nibbles,
52 ) -> Result<Option<(Nibbles, BranchNodeCompact)>, DatabaseError> {
53 Ok(None)
54 }
55
56 fn next(&mut self) -> Result<Option<(Nibbles, BranchNodeCompact)>, DatabaseError> {
57 Ok(None)
58 }
59
60 fn current(&mut self) -> Result<Option<Nibbles>, DatabaseError> {
61 Ok(None)
62 }
63
64 fn reset(&mut self) {
65 }
67}
68
69#[derive(Default, Debug)]
71#[non_exhaustive]
72pub struct NoopStorageTrieCursor;
73
74impl TrieCursor for NoopStorageTrieCursor {
75 fn seek_exact(
76 &mut self,
77 _key: Nibbles,
78 ) -> Result<Option<(Nibbles, BranchNodeCompact)>, DatabaseError> {
79 Ok(None)
80 }
81
82 fn seek(
83 &mut self,
84 _key: Nibbles,
85 ) -> Result<Option<(Nibbles, BranchNodeCompact)>, DatabaseError> {
86 Ok(None)
87 }
88
89 fn next(&mut self) -> Result<Option<(Nibbles, BranchNodeCompact)>, DatabaseError> {
90 Ok(None)
91 }
92
93 fn current(&mut self) -> Result<Option<Nibbles>, DatabaseError> {
94 Ok(None)
95 }
96
97 fn reset(&mut self) {
98 }
100}
101
102impl TrieStorageCursor for NoopStorageTrieCursor {
103 fn set_hashed_address(&mut self, _hashed_address: B256) {
104 }
106}