rdbi_codegen/codegen/
code_generator.rs1use crate::error::Result;
4
5use crate::config::CodegenConfig;
6use crate::parser::TableMetadata;
7
8pub use super::dao_generator::generate_daos;
9pub use super::struct_generator::generate_structs;
10
11pub struct CodeGenerator<'a> {
13 config: &'a CodegenConfig,
14}
15
16impl<'a> CodeGenerator<'a> {
17 pub fn new(config: &'a CodegenConfig) -> Self {
19 Self { config }
20 }
21
22 pub fn generate(&self, tables: &[TableMetadata]) -> Result<()> {
24 if self.config.generate_structs {
25 self.generate_structs(tables)?;
26 }
27 if self.config.generate_dao {
28 self.generate_daos(tables)?;
29 }
30 Ok(())
31 }
32
33 pub fn generate_structs(&self, tables: &[TableMetadata]) -> Result<()> {
35 generate_structs(tables, self.config)
36 }
37
38 pub fn generate_daos(&self, tables: &[TableMetadata]) -> Result<()> {
40 generate_daos(tables, self.config)
41 }
42}