schema_sql_generator/common/
sql_generator_settings.rs1use crate::common::generate_options::GenerateOptions;
2use crate::common::output_mode::OutputMode;
3use schema_model::model::database_model::DatabaseModel;
4use schema_model::model::types::{BooleanMode, DatabaseType, ForeignKeyMode};
5use std::rc::Rc;
6
7#[derive(Debug, Clone)]
8pub struct SqlGeneratorSettings {
9 database_type: DatabaseType,
10 database_model: Rc<DatabaseModel>,
11 statement_separator: String,
12 foreign_key_mode: ForeignKeyMode,
13 boolean_mode: BooleanMode,
14 output_mode: OutputMode,
15 target_postgres_version: u32,
16}
17
18impl SqlGeneratorSettings {
19 pub fn new(database_type: DatabaseType, options: &GenerateOptions) -> Self {
20 Self {
21 database_type,
22 database_model : options.database_model.clone(),
23 statement_separator: ";".to_string(),
24 foreign_key_mode: options.foreign_key_mode,
25 boolean_mode: options.boolean_mode,
26 output_mode: options.output_mode,
27 target_postgres_version: options.target_postgres_version,
28 }
29 }
30
31 pub fn database_type(&self) -> DatabaseType {
32 self.database_type
33 }
34
35 pub fn database_model(&self) -> &Rc<DatabaseModel> {
36 &self.database_model
37 }
38
39 pub fn statement_separator(&self) -> &String {
40 &self.statement_separator
41 }
42
43 pub fn foreign_key_mode(&self) -> ForeignKeyMode {
44 self.foreign_key_mode
45 }
46
47 pub fn boolean_mode(&self) -> BooleanMode {
48 self.boolean_mode
49 }
50
51 pub fn output_mode(&self) -> OutputMode {
52 self.output_mode
53 }
54
55 pub fn target_postgres_version(&self) -> u32 {
56 self.target_postgres_version
57 }
58}