duckquill 0.2.5

Parquet-backed text2sql engine and CLI for schema-first querying workflows
Documentation
use clap::Parser;
use duckquill::{
    app,
    config::{Cli, Command},
    engine::Text2SqlEngine,
    error::AppResult,
    logging,
};

#[tokio::main]
async fn main() -> AppResult<()> {
    let cli = Cli::parse();
    logging::init(cli.log_filter());

    match cli.command() {
        Command::Serve(args) => app::run(args.into()).await,
        Command::Convert(args) => {
            let response = Text2SqlEngine::new().convert_from_args(args).await?;
            println!("{}", serde_json::to_string_pretty(&response)?);
            Ok(())
        }
        Command::Schema(args) => {
            let response = Text2SqlEngine::new().schema_from_args(args).await?;
            println!("{}", serde_json::to_string_pretty(&response)?);
            Ok(())
        }
        Command::Query(args) => {
            let response = Text2SqlEngine::new().query_from_args(args).await?;
            println!("{}", serde_json::to_string_pretty(&response)?);
            Ok(())
        }
        Command::Benchmark(args) => {
            let response = Text2SqlEngine::new().benchmark_from_args(args).await?;
            println!("{}", serde_json::to_string_pretty(&response)?);
            Ok(())
        }
    }
}