kona_mpt/
errors.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//! Errors for the `kona-derive` crate.

use alloc::string::String;
use thiserror::Error;

/// A [Result] type alias where the error is [TrieNodeError].
pub type TrieNodeResult<T> = Result<T, TrieNodeError>;

/// An error type for [TrieNode] operations.
///
/// [TrieNode]: crate::TrieNode
#[derive(Error, Debug, PartialEq, Eq)]
pub enum TrieNodeError {
    /// Invalid trie node type encountered.
    #[error("Invalid trie node type encountered")]
    InvalidNodeType,
    /// Failed to decode trie node.
    #[error("Failed to decode trie node: {0}")]
    RLPError(alloy_rlp::Error),
    /// Key does not exist in trie.
    #[error("Key does not exist in trie.")]
    KeyNotFound,
    /// Trie node is not a leaf node.
    #[error("Trie provider error: {0}")]
    Provider(String),
}

/// A [Result] type alias where the error is [OrderedListWalkerError].
pub type OrderedListWalkerResult<T> = Result<T, OrderedListWalkerError>;

/// An error type for [OrderedListWalker] operations.
///
/// [OrderedListWalker]: crate::OrderedListWalker
#[derive(Error, Debug, PartialEq, Eq)]
pub enum OrderedListWalkerError {
    /// Iterator has already been hydrated, and cannot be re-hydrated until it is exhausted.
    #[error("Iterator has already been hydrated, and cannot be re-hydrated until it is exhausted")]
    AlreadyHydrated,
    /// Trie node error.
    #[error("{0}")]
    TrieNode(#[from] TrieNodeError),
}