reth_trie/trie_cursor/
noop.rs
1use 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 = NoopAccountTrieCursor;
13 type StorageTrieCursor = NoopStorageTrieCursor;
14
15 fn account_trie_cursor(&self) -> Result<Self::AccountTrieCursor, DatabaseError> {
17 Ok(NoopAccountTrieCursor::default())
18 }
19
20 fn storage_trie_cursor(
22 &self,
23 _hashed_address: B256,
24 ) -> Result<Self::StorageTrieCursor, DatabaseError> {
25 Ok(NoopStorageTrieCursor::default())
26 }
27}
28
29#[derive(Default, Debug)]
31#[non_exhaustive]
32pub struct NoopAccountTrieCursor;
33
34impl TrieCursor for NoopAccountTrieCursor {
35 fn seek_exact(
36 &mut self,
37 _key: Nibbles,
38 ) -> Result<Option<(Nibbles, BranchNodeCompact)>, DatabaseError> {
39 Ok(None)
40 }
41
42 fn seek(
43 &mut self,
44 _key: Nibbles,
45 ) -> Result<Option<(Nibbles, BranchNodeCompact)>, DatabaseError> {
46 Ok(None)
47 }
48
49 fn next(&mut self) -> Result<Option<(Nibbles, BranchNodeCompact)>, DatabaseError> {
50 Ok(None)
51 }
52
53 fn current(&mut self) -> Result<Option<Nibbles>, DatabaseError> {
54 Ok(None)
55 }
56}
57
58#[derive(Default, Debug)]
60#[non_exhaustive]
61pub struct NoopStorageTrieCursor;
62
63impl TrieCursor for NoopStorageTrieCursor {
64 fn seek_exact(
65 &mut self,
66 _key: Nibbles,
67 ) -> Result<Option<(Nibbles, BranchNodeCompact)>, DatabaseError> {
68 Ok(None)
69 }
70
71 fn seek(
72 &mut self,
73 _key: Nibbles,
74 ) -> Result<Option<(Nibbles, BranchNodeCompact)>, DatabaseError> {
75 Ok(None)
76 }
77
78 fn next(&mut self) -> Result<Option<(Nibbles, BranchNodeCompact)>, DatabaseError> {
79 Ok(None)
80 }
81
82 fn current(&mut self) -> Result<Option<Nibbles>, DatabaseError> {
83 Ok(None)
84 }
85}