use thiserror::Error;
#[derive(Debug, Error)]
pub enum DataError {
#[error("sqlite error: {0}")]
Sqlite(#[from] rusqlite::Error),
#[error("csv error: {0}")]
Csv(#[from] csv::Error),
#[error("io error: {0}")]
Io(#[from] std::io::Error),
#[error("invalid SQL identifier `{0}`: table names may not be empty or contain NUL / double-quote characters")]
InvalidIdentifier(String),
#[error("no such table: `{0}`")]
NoSuchTable(String),
#[error("empty csv: no header row")]
EmptyCsv,
#[error("invalid notebook: {0}")]
InvalidNotebook(String),
}
pub type Result<T> = std::result::Result<T, DataError>;