Documentation
use thiserror::Error;

/// Errors that can occur during binary trie operations
#[derive(Error, Debug)]
pub enum BinTrieError {
    #[error("Key already exists")]
    KeyExists,
    #[error("Key not found")]
    KeyNotFound,
    #[error("Invalid proof")]
    InvalidProof,
    #[error("Existing proof")]
    ExistingProof,
    #[error("Bad proof")]
    BadProof,
    #[error("Invalid hash length")]
    InvalidHashLength,
    #[error("Invalid pubkey length")]
    InvalidPubkeyLength,
    #[error("Proof verification failed")]
    ProofVerificationFailed,
}