openapi_nexus_go/templating/data/
model_struct_data.rs1use serde::{Deserialize, Serialize};
4
5use crate::ast::GoStruct;
6use crate::templating::data::CommonFileHeaderData;
7
8#[derive(Debug, Clone, Serialize, Deserialize)]
10pub struct ModelStructData {
11 pub struct_definition: GoStruct,
12 pub imports: Vec<String>,
13 pub required_fields: Vec<String>,
14 pub common_file_header: CommonFileHeaderData,
15}
16
17impl ModelStructData {
18 pub fn new(struct_definition: GoStruct, common_file_header: CommonFileHeaderData) -> Self {
19 Self {
20 struct_definition,
21 imports: Vec::new(),
22 required_fields: Vec::new(),
23 common_file_header,
24 }
25 }
26
27 pub fn with_imports(mut self, imports: Vec<String>) -> Self {
28 self.imports = imports;
29 self
30 }
31
32 pub fn with_required_fields(mut self, required_fields: Vec<String>) -> Self {
33 self.required_fields = required_fields;
34 self
35 }
36}