indexed_merkle_tree/
error.rs

1use anyhow::Result;
2use core::fmt;
3
4#[derive(Debug)]
5pub enum MerkleTreeError {
6    NotFoundError(alloc::string::String),
7    OrderingError,
8    EmptyMerkleTreeError,
9    IndexError(alloc::string::String),
10    InvalidFormatError(alloc::string::String),
11    MerkleProofError,
12}
13
14impl fmt::Display for MerkleTreeError {
15    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
16        match self {
17            MerkleTreeError::NotFoundError(s) => write!(f, "{} not found", s),
18            MerkleTreeError::OrderingError => write!(f, "Failed to order merkle tree nodes"),
19            MerkleTreeError::EmptyMerkleTreeError => write!(f, "The Merkle tree is empty"),
20            MerkleTreeError::IndexError(s) => {
21                write!(f, "Failed to retrieve the node at index {}", s)
22            }
23            MerkleTreeError::InvalidFormatError(s) => write!(f, "Invalid format error: {}", s),
24            MerkleTreeError::MerkleProofError => write!(f, "Failed to generate Merkle proof"),
25        }
26    }
27}
28
29pub type MerkleTreeResult<T> = Result<T>;