1use std::path::PathBuf;
2
3use eyre::*;
4
5use crate::model::{ProceduralFunction, Service, Type};
6
7pub mod docs;
8pub mod model;
9pub mod rust;
10pub mod service;
11pub mod sql;
12
13pub struct Data {
14 pub project_root: PathBuf,
15 pub output_dir: PathBuf,
16 pub services: Vec<Service>,
17 pub enums: Vec<Type>,
18 pub pg_funcs: Vec<ProceduralFunction>,
19}
20pub fn main(data: Data) -> Result<()> {
21 docs::gen_services_docs(&data)?;
22 docs::gen_md_docs(&data)?;
23 rust::gen_model_rs(&data)?;
24 sql::gen_model_sql(&data)?;
25 sql::gen_db_sql(&data)?;
26 rust::gen_db_rs(&data)?;
27 docs::gen_error_message_md(&data.project_root)?;
29 Ok(())
30}