use thiserror::Error;
pub type Result<T> = std::result::Result<T, PincodeError>;
#[derive(Error, Debug)]
pub enum PincodeError {
#[error("Invalid pincode: '{0}'. Pincode must be a 6-digit number")]
InvalidPincode(String),
#[error("No data found for pincode: '{0}'")]
DataNotFound(String),
#[error("Failed to load pincode data: {0}")]
DataLoad(String),
#[error("CSV parsing error: {0}")]
CsvError(#[from] csv::Error),
#[error("IO error: {0}")]
IoError(#[from] std::io::Error),
}