use crate::Roman;
#[derive(thiserror::Error, Debug, PartialEq)]
pub enum Error {
#[error("Empty strings are not valid roman numbers")]
EmptyString,
#[error("{0} cannot be followed by {1}")]
InvalidSequence(Roman, Roman),
#[error("{0} is not a valid roman number")]
InvalidCharacter(u8),
#[error("The same number cannot be more than 3 in a row")]
TooManyRepetitions,
#[error("Zero doesn't exist as a roman numeral")]
NumberZero,
#[error("The given number is too large")]
NumberTooLarge,
}