use thiserror::Error;
pub type ParseResult<T> = Result<T, CssValueParseError>;
#[derive(Error, Debug, Clone, PartialEq)]
pub enum CssValueParseError {
#[error("Input is empty")]
EmptyInput,
#[error("Invalid CSS unit: {0}")]
InvalidUnit(String),
#[error("Invalid number format: {0}")]
InvalidNumber(String),
#[error("Invalid expression: {0}")]
InvalidExpression(String),
#[error("Unterminated function: {0}")]
UnterminatedFunction(String),
#[error("Unexpected token: {0}")]
UnexpectedToken(String),
#[error("Missing required argument: {0}")]
MissingArgument(String),
#[error("Parse error: {0}")]
ParseError(String),
#[error("Parse error")]
ParseErrorWithoutMessage,
}