use thiserror::Error;
#[derive(Error, Debug, PartialEq, Eq)]
pub enum BigIntError {
#[error("base too large: number has {0} digits, alphabet can only represent {1} digits")]
BaseTooHigh(usize, usize),
#[error("parsing failed: {0}")]
ParseFailed(ParseError),
#[error("division by zero")]
DivisionByZero,
}
#[derive(Error, Debug, PartialEq, Eq)]
pub enum ParseError {
#[error("unrecognized character: {0:?}")]
UnrecognizedCharacter(char),
#[error("not enough characters")]
NotEnoughCharacters,
#[error("char {0:?} is {1}; too large to be represented in base {2}")]
DigitTooLarge(char, usize, usize),
}