1use forest_encoding::Error as EncodingError;
5use std::error::Error as StdError;
6use thiserror::Error;
7
8#[derive(Debug, Error)]
10pub enum Error {
11 #[error("Maximum depth reached")]
13 MaxDepth,
14 #[error("HashBits does not support retrieving more than 8 bits")]
16 InvalidHashBitLen,
17 #[error("Invalid HAMT format, node cannot have 0 pointers")]
19 ZeroPointers,
20 #[error("Cid ({0}) did not match any in database")]
22 CidNotFound(String),
23 #[error("{0}")]
25 Dynamic(Box<dyn StdError>),
26 #[error("{0}")]
28 Other(String),
29}
30
31impl From<EncodingError> for Error {
32 fn from(e: EncodingError) -> Self {
33 Self::Dynamic(Box::new(e))
34 }
35}
36
37impl From<Box<dyn StdError>> for Error {
38 fn from(e: Box<dyn StdError>) -> Self {
39 Self::Dynamic(e)
40 }
41}