reth_trie/trie_cursor/
noop.rs1use super::{TrieCursor, TrieCursorFactory};
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
65#[derive(Default, Debug)]
67#[non_exhaustive]
68pub struct NoopStorageTrieCursor;
69
70impl TrieCursor for NoopStorageTrieCursor {
71 fn seek_exact(
72 &mut self,
73 _key: Nibbles,
74 ) -> Result<Option<(Nibbles, BranchNodeCompact)>, DatabaseError> {
75 Ok(None)
76 }
77
78 fn seek(
79 &mut self,
80 _key: Nibbles,
81 ) -> Result<Option<(Nibbles, BranchNodeCompact)>, DatabaseError> {
82 Ok(None)
83 }
84
85 fn next(&mut self) -> Result<Option<(Nibbles, BranchNodeCompact)>, DatabaseError> {
86 Ok(None)
87 }
88
89 fn current(&mut self) -> Result<Option<Nibbles>, DatabaseError> {
90 Ok(None)
91 }
92}