Skip to main content

flowscope_export/
error.rs

1//! Error types for the export crate.
2
3use thiserror::Error;
4
5/// Errors that can occur during database export.
6#[derive(Debug, Error)]
7pub enum ExportError {
8    #[error("Database error: {0}")]
9    Database(String),
10
11    #[error("IO error: {0}")]
12    Io(#[from] std::io::Error),
13
14    #[error("Unsupported format: {0}")]
15    UnsupportedFormat(&'static str),
16
17    #[error("Invalid schema name: {0}")]
18    InvalidSchema(String),
19
20    #[error("Serialization error: {0}")]
21    Serialization(String),
22
23    #[error("CSV export error: {0}")]
24    Csv(String),
25
26    #[error("Archive export error: {0}")]
27    Archive(String),
28
29    #[error("XLSX export error: {0}")]
30    Xlsx(String),
31
32    #[error("HTML export error: {0}")]
33    Html(String),
34}
35
36#[cfg(feature = "duckdb")]
37impl From<duckdb::Error> for ExportError {
38    fn from(e: duckdb::Error) -> Self {
39        ExportError::Database(e.to_string())
40    }
41}