pub struct FieldGenerator<'a> { /* private fields */ }Expand description
Generator for creating Rust fields from FHIR ElementDefinitions
Implementations§
Source§impl<'a> FieldGenerator<'a>
impl<'a> FieldGenerator<'a>
Sourcepub fn new(
config: &'a CodegenConfig,
type_cache: &'a HashMap<String, RustStruct>,
value_set_manager: &'a mut ValueSetManager,
) -> Self
pub fn new( config: &'a CodegenConfig, type_cache: &'a HashMap<String, RustStruct>, value_set_manager: &'a mut ValueSetManager, ) -> Self
Create a new field generator
Sourcepub fn create_fields_from_element(
&mut self,
element: &ElementDefinition,
) -> CodegenResult<Vec<RustField>>
pub fn create_fields_from_element( &mut self, element: &ElementDefinition, ) -> CodegenResult<Vec<RustField>>
Create RustField(s) from an ElementDefinition Returns a vector because choice types generate multiple fields
Sourcepub fn create_field_from_element(
&mut self,
element: &ElementDefinition,
) -> CodegenResult<Option<RustField>>
pub fn create_field_from_element( &mut self, element: &ElementDefinition, ) -> CodegenResult<Option<RustField>>
Legacy method for backward compatibility
Sourcepub fn to_rust_field_name(name: &str) -> String
pub fn to_rust_field_name(name: &str) -> String
Convert a FHIR field name to a valid Rust field name
Sourcepub fn type_code_to_snake_case(type_code: &str) -> String
pub fn type_code_to_snake_case(type_code: &str) -> String
Convert FHIR type code to snake_case for field suffix
Sourcepub fn extract_field_name_from_path(path: &str) -> &str
pub fn extract_field_name_from_path(path: &str) -> &str
Extract field name from element path (utility method)
Sourcepub fn requires_serde_rename(original_name: &str, rust_field_name: &str) -> bool
pub fn requires_serde_rename(original_name: &str, rust_field_name: &str) -> bool
Check if a field name requires serde rename
Sourcepub fn determine_field_cardinality(element: &ElementDefinition) -> (bool, bool)
pub fn determine_field_cardinality(element: &ElementDefinition) -> (bool, bool)
Determine field cardinality from ElementDefinition
Sourcepub fn extract_choice_types_from_structure(
structure_def: &StructureDefinition,
) -> Vec<(String, Vec<String>)>
pub fn extract_choice_types_from_structure( structure_def: &StructureDefinition, ) -> Vec<(String, Vec<String>)>
Extract choice type information from a StructureDefinition Returns a vector of (base_name, type_codes) tuples for each choice type found
Sourcepub fn create_primitive_field_macro_call(
&mut self,
element: &ElementDefinition,
) -> CodegenResult<Option<RustField>>
pub fn create_primitive_field_macro_call( &mut self, element: &ElementDefinition, ) -> CodegenResult<Option<RustField>>
Generate explicit primitive fields with companion extension fields This creates two RustField instances: the primitive field and its companion Element field
Sourcepub fn create_companion_extension_field(
&self,
field_name: &str,
) -> CodegenResult<RustField>
pub fn create_companion_extension_field( &self, field_name: &str, ) -> CodegenResult<RustField>
Generate the companion extension field for a primitive field Returns a RustField representing the _fieldname extension companion