mod constructors;
mod declare;
pub(super) mod fields;
use crate::database::introspection::Schema;
use crate::generators::rust::model::Model;
pub fn render(model: &Model, schema: &Schema) -> String {
let mut file = fields::imports(model);
file.push_str(&declare::submodules(model));
let imported = declare::enum_imports(model, schema);
if !imported.is_empty() {
file.push_str(&imported);
file.push('\n');
}
file.push_str(&declare::declaration(model));
if model.view {
file.push('\n');
file.push_str(&declare::all_options(model));
} else {
file.push('\n');
file.push_str(&constructors::default_impl(model));
file.push('\n');
file.push_str(&constructors::new(model));
}
file
}