MCPcopy Create free account
hub / github.com/SeaQL/sea-orm / write_entities

Method write_entities

sea-orm-codegen/src/entity/writer.rs:225–299  ·  view source on GitHub ↗
(&self, context: &EntityWriterContext)

Source from the content-addressed store, hash-verified

223 }
224
225 pub fn write_entities(&self, context: &EntityWriterContext) -> Vec<OutputFile> {
226 self.entities
227 .iter()
228 .map(|entity| {
229 let entity_file = format!("{}.rs", entity.get_table_name_snake_case());
230 let column_info = entity
231 .columns
232 .iter()
233 .map(|column| column.get_info(&context.date_time_crate))
234 .collect::<Vec<String>>();
235 // Serde must be enabled to use this
236 let serde_skip_deserializing_primary_key = context
237 .serde_skip_deserializing_primary_key
238 && matches!(context.with_serde, WithSerde::Both | WithSerde::Deserialize);
239 let serde_skip_hidden_column = context.serde_skip_hidden_column
240 && matches!(
241 context.with_serde,
242 WithSerde::Both | WithSerde::Serialize | WithSerde::Deserialize
243 );
244
245 info!("Generating {}", entity_file);
246 for info in column_info.iter() {
247 info!(" > {}", info);
248 }
249
250 let mut lines = Vec::new();
251 Self::write_doc_comment(&mut lines);
252 let code_blocks = if context.frontend_format {
253 Self::gen_frontend_code_blocks(
254 entity,
255 &context.with_serde,
256 &context.date_time_crate,
257 &context.schema_name,
258 serde_skip_deserializing_primary_key,
259 serde_skip_hidden_column,
260 &context.model_extra_derives,
261 &context.model_extra_attributes,
262 context.seaography,
263 context.impl_active_model_behavior,
264 )
265 } else if context.expanded_format {
266 Self::gen_expanded_code_blocks(
267 entity,
268 &context.with_serde,
269 &context.date_time_crate,
270 &context.schema_name,
271 serde_skip_deserializing_primary_key,
272 serde_skip_hidden_column,
273 &context.model_extra_derives,
274 &context.model_extra_attributes,
275 context.seaography,
276 context.impl_active_model_behavior,
277 )
278 } else {
279 Self::gen_compact_code_blocks(
280 entity,
281 &context.with_serde,
282 &context.date_time_crate,

Callers 1

generateMethod · 0.80

Calls 3

get_infoMethod · 0.80
joinMethod · 0.80
newFunction · 0.50

Tested by

no test coverage detected