use std::num::ParseIntError;
use thiserror::Error;
#[derive(Debug, Error, PartialEq)]
#[non_exhaustive]
pub enum NotationError {
#[error("invalid dice notation; expected something like 2d6+3")]
InvalidFormat,
#[error("invalid number: {0}")]
InvalidNumber(#[from] ParseIntError),
#[error("{0} must be greater than zero")]
Zero(&'static str),
#[error("invalid operator; expected one of +, -, /, *")]
InvalidOperator,
#[error("number too large; maximum is {0}")]
NumberTooLarge(u32),
}