use std::io;
use datafusion_ducklake_provider::datafusion::arrow::error::ArrowError;
use datafusion_ducklake_provider::datafusion::error::DataFusionError;
use rustyline::error::ReadlineError;
#[derive(Debug, thiserror::Error)]
pub enum CliError {
#[error("{0}")]
Message(String),
#[error(transparent)]
DataFusion(#[from] DataFusionError),
#[error(transparent)]
Arrow(#[from] ArrowError),
#[error(transparent)]
Io(#[from] io::Error),
#[error(transparent)]
Readline(#[from] ReadlineError),
}
impl CliError {
pub fn exit_code(&self) -> i32 {
1
}
}
pub(crate) fn err(message: impl Into<String>) -> CliError {
CliError::Message(message.into())
}