ghost-crab 0.10.0

ethereum indexer SDK 👻🦀
Documentation
use alloy::hex::FromHexError;
use core::fmt;

#[derive(Debug)]
pub enum Error {
    NotFound(String),
    DB(rocksdb::Error),
    NetworkNotFound(String),
    InvalidAddress(FromHexError),
    CacheFileNotFound(std::io::Error),
    InvalidRpcUrl(Box<dyn std::error::Error>),
}

pub type Result<T> = core::result::Result<T, Error>;

impl fmt::Display for Error {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        match self {
            Error::NotFound(handler) => {
                writeln!(f, "Handler not found: {}", handler)
            }
            Error::DB(error) => {
                writeln!(f, "Error while loading cache: {}", error)
            }
            Error::NetworkNotFound(network) => {
                writeln!(f, "Network not found: {}", network)
            }
            Error::InvalidAddress(error) => {
                writeln!(f, "Invalid address: {}", error)
            }
            Error::CacheFileNotFound(error) => {
                writeln!(f, "Cache file not found: {}", error)
            }
            Error::InvalidRpcUrl(error) => {
                writeln!(f, "Invalid RPC url: {}", error)
            }
        }
    }
}

impl std::error::Error for Error {}