baobao_codegen/adapters/mod.rs
1//! Adapter abstractions for framework-specific code generation.
2//!
3//! This module provides traits that abstract away framework-specific details,
4//! allowing generators to be decoupled from specific libraries like clap, sqlx, etc.
5//!
6//! # Architecture
7//!
8//! Adapters are compile-time abstractions using generics for zero overhead.
9//! Each language generator is parameterized by adapter implementations.
10//!
11//! # Available Adapters
12//!
13//! - [`CliAdapter`] - CLI framework abstraction (clap, argh, boune, etc.)
14//! - [`DatabaseAdapter`] - Database connection/pool abstraction (sqlx, diesel, etc.)
15//! - [`RuntimeAdapter`] - Async runtime abstraction (tokio, async-std, etc.)
16//! - [`ErrorAdapter`] - Error handling abstraction (eyre, anyhow, etc.)
17
18mod async_runtime;
19mod cli;
20mod database;
21mod error;
22
23pub use async_runtime::{RuntimeAdapter, RuntimeInfo};
24pub use cli::{
25 ArgMeta, CliAdapter, CliInfo, CommandMeta, Dependency, DispatchInfo, FlagMeta, ImportSpec,
26 SubcommandMeta,
27};
28pub use database::{DatabaseAdapter, DatabaseOptionsInfo, PoolConfig, PoolInitInfo, SqliteConfig};
29pub use error::ErrorAdapter;