use thiserror::Error;
#[derive(Debug, Clone, Error)]
pub enum Error {
#[error("Empty input")]
EmptyInput,
#[error("Invalid value for argument {arg_name}, expected {expected_type}")]
InvalidValue { arg_name: String, expected_type: String },
#[error("Unknown argument: {arg_name}")]
UnknownArgument { arg_name: String },
#[error("Too many values provided for argument {arg_name}")]
TooManyValues { arg_name: String },
#[error("Too few values provided for argument {arg_name}")]
TooFewValues { arg_name: String },
#[error("Missing required argument: {arg_name}")]
MissingRequired { arg_name: String },
}