Skip to main content

schema_sql_generator/common/
generate_options.rs

1use crate::common::output_mode::OutputMode;
2use crate::common::print_writer::PrintWriter;
3use schema_model::model::database_model::DatabaseModel;
4use schema_model::model::types::{BooleanMode, ForeignKeyMode};
5use std::cell::RefCell;
6use std::rc::Rc;
7
8pub struct GenerateOptions {
9    pub database_model: Rc<DatabaseModel>,
10    pub writer: Rc<RefCell<PrintWriter>>,
11    pub foreign_key_mode: ForeignKeyMode,
12    pub boolean_mode: BooleanMode,
13    pub output_mode: OutputMode,
14    pub target_postgres_version: u32,
15}
16
17impl GenerateOptions {
18    pub fn new(database_model: Rc<DatabaseModel>, writer: Rc<RefCell<PrintWriter>>) -> Self {
19        Self {
20            database_model,
21            writer,
22            foreign_key_mode: ForeignKeyMode::Relations,
23            boolean_mode: BooleanMode::Native,
24            output_mode: OutputMode::All,
25            target_postgres_version: 0,
26        }
27    }
28}