Skip to main content

datafusion_ducklake_cli/
error.rs

1use std::io;
2
3use datafusion_ducklake_provider::datafusion::arrow::error::ArrowError;
4use datafusion_ducklake_provider::datafusion::error::DataFusionError;
5use rustyline::error::ReadlineError;
6
7#[derive(Debug, thiserror::Error)]
8pub enum CliError {
9    #[error("{0}")]
10    Message(String),
11    #[error(transparent)]
12    DataFusion(#[from] DataFusionError),
13    #[error(transparent)]
14    Arrow(#[from] ArrowError),
15    #[error(transparent)]
16    Io(#[from] io::Error),
17    #[error(transparent)]
18    Readline(#[from] ReadlineError),
19}
20
21impl CliError {
22    pub fn exit_code(&self) -> i32 {
23        1
24    }
25}
26
27pub(crate) fn err(message: impl Into<String>) -> CliError {
28    CliError::Message(message.into())
29}