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
use forest_encoding::Error as EncodingError;
use std::error::Error as StdError;
use thiserror::Error;
#[derive(Debug, Error)]
pub enum Error {
#[error("Maximum depth reached")]
MaxDepth,
#[error("HashBits does not support retrieving more than 8 bits")]
InvalidHashBitLen,
#[error("Invalid HAMT format, node cannot have 0 pointers")]
ZeroPointers,
#[error("Cid ({0}) did not match any in database")]
CidNotFound(String),
#[error("{0}")]
Dynamic(Box<dyn StdError>),
#[error("{0}")]
Other(String),
}
impl From<EncodingError> for Error {
fn from(e: EncodingError) -> Self {
Self::Dynamic(Box::new(e))
}
}
impl From<Box<dyn StdError>> for Error {
fn from(e: Box<dyn StdError>) -> Self {
Self::Dynamic(e)
}
}