use thiserror::Error;
#[derive(Debug, Clone, PartialEq, Eq, Error)]
pub enum MnemonicError {
#[error("Invalid word count: {0}. Must be 12, 15, 18, 21, or 24")]
InvalidWordCount(usize),
#[error("Invalid word: '{0}' not in wordlist")]
InvalidWord(String),
#[error("Invalid checksum")]
InvalidChecksum,
#[error("Invalid entropy length: expected {expected}, got {actual}")]
InvalidEntropyLength { expected: usize, actual: usize },
#[error("Empty mnemonic phrase")]
EmptyPhrase,
#[error("Invalid private key derived from seed")]
InvalidPrivateKey,
#[error("Could not detect language: words may be from multiple languages")]
LanguageDetectionFailed,
}