1use ark_std::string::String;
9use displaydoc::Display;
10use jf_poseidon2::Poseidon2Error;
11use jf_rescue::RescueError;
12
13#[derive(Debug, Display, Eq, PartialEq)]
15pub enum MerkleTreeError {
16 ParametersError(String),
18 NotFound,
20 ExistingLeaf,
22 ForgottenLeaf,
24 ExceedCapacity,
26 DigestError(String),
28 InconsistentStructureError(String),
30}
31
32impl ark_std::error::Error for MerkleTreeError {}
33
34impl From<RescueError> for MerkleTreeError {
35 fn from(err: RescueError) -> Self {
36 MerkleTreeError::DigestError(ark_std::format!("{}", err))
37 }
38}
39
40impl From<Poseidon2Error> for MerkleTreeError {
41 fn from(err: Poseidon2Error) -> Self {
42 MerkleTreeError::DigestError(ark_std::format!("{}", err))
43 }
44}