use crate::error::Result;
use crate::config::CodegenConfig;
use crate::parser::TableMetadata;
pub use super::dao_generator::generate_daos;
pub use super::struct_generator::generate_structs;
pub struct CodeGenerator<'a> {
config: &'a CodegenConfig,
}
impl<'a> CodeGenerator<'a> {
pub fn new(config: &'a CodegenConfig) -> Self {
Self { config }
}
pub fn generate(&self, tables: &[TableMetadata]) -> Result<()> {
if self.config.generate_structs {
self.generate_structs(tables)?;
}
if self.config.generate_dao {
self.generate_daos(tables)?;
}
Ok(())
}
pub fn generate_structs(&self, tables: &[TableMetadata]) -> Result<()> {
generate_structs(tables, self.config)
}
pub fn generate_daos(&self, tables: &[TableMetadata]) -> Result<()> {
generate_daos(tables, self.config)
}
}