indexed_merkle_tree/
error.rs1use 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>;