use thiserror::Error;
#[derive(Error, Debug)]
pub enum DCTapError {
#[error("Unsupported DCTap format: '{format}'. Valid formats are: 'csv', 'xlsx', 'xlsb', 'xlsm', 'xls'")]
UnsupportedDCTapFormat { format: String },
#[error("Unsupported DCTap result format: '{format}'. Valid formats are: 'internal', 'json'")]
UnsupportedResultDCTapFormat { format: String },
#[error("Data source specification error: {message}")]
DataSourceSpec { message: String },
#[error("No DCTap data loaded. Please load DCTap data before attempting to serialize.")]
NoDCTapLoaded,
#[error("Failed to serialize DCTap in format '{format}': {error}")]
FailedSerializingDCTap { format: String, error: String },
}