pub struct CodeGenerator { /* private fields */ }Expand description
Main code generator struct that orchestrates specialized generators
Implementations§
Source§impl CodeGenerator
impl CodeGenerator
Sourcepub fn new(config: CodegenConfig) -> Self
pub fn new(config: CodegenConfig) -> Self
Create a new code generator with the given configuration
Sourcepub fn new_with_value_set_directory<P: AsRef<Path>>(
config: CodegenConfig,
value_set_dir: P,
) -> Self
pub fn new_with_value_set_directory<P: AsRef<Path>>( config: CodegenConfig, value_set_dir: P, ) -> Self
Create a new code generator with a ValueSet directory
Sourcepub fn load_structure_definition<P: AsRef<Path>>(
&self,
path: P,
) -> CodegenResult<StructureDefinition>
pub fn load_structure_definition<P: AsRef<Path>>( &self, path: P, ) -> CodegenResult<StructureDefinition>
Load and parse a FHIR StructureDefinition from a JSON file
Sourcepub fn generate_struct(
&mut self,
structure_def: &StructureDefinition,
) -> CodegenResult<RustStruct>
pub fn generate_struct( &mut self, structure_def: &StructureDefinition, ) -> CodegenResult<RustStruct>
Generate a Rust struct from a FHIR StructureDefinition
Sourcepub fn generate_trait(
&mut self,
structure_def: &StructureDefinition,
) -> CodegenResult<Vec<RustTrait>>
pub fn generate_trait( &mut self, structure_def: &StructureDefinition, ) -> CodegenResult<Vec<RustTrait>>
Generate traits for a structure definition
Sourcepub fn generate_to_organized_directories<P: AsRef<Path>>(
&mut self,
structure_def: &StructureDefinition,
base_output_dir: P,
) -> CodegenResult<()>
pub fn generate_to_organized_directories<P: AsRef<Path>>( &mut self, structure_def: &StructureDefinition, base_output_dir: P, ) -> CodegenResult<()>
Generate a Rust struct and write it to the appropriate directory based on FHIR type classification
Sourcepub fn generate_trait_to_organized_directory<P: AsRef<Path>>(
&mut self,
structure_def: &StructureDefinition,
base_output_dir: P,
) -> CodegenResult<()>
pub fn generate_trait_to_organized_directory<P: AsRef<Path>>( &mut self, structure_def: &StructureDefinition, base_output_dir: P, ) -> CodegenResult<()>
Generate traits and write them to the traits directory
Sourcepub fn classify_fhir_structure_def(
&self,
structure_def: &StructureDefinition,
) -> FhirTypeCategory
pub fn classify_fhir_structure_def( &self, structure_def: &StructureDefinition, ) -> FhirTypeCategory
Classify a FHIR StructureDefinition into the appropriate category
Sourcepub fn generate_to_file<P: AsRef<Path>>(
&mut self,
structure_def: &StructureDefinition,
output_path: P,
) -> CodegenResult<()>
pub fn generate_to_file<P: AsRef<Path>>( &mut self, structure_def: &StructureDefinition, output_path: P, ) -> CodegenResult<()>
Generate a Rust struct and write it to a file
Sourcepub fn generate_trait_to_file<P: AsRef<Path>>(
&mut self,
structure_def: &StructureDefinition,
output_path: P,
) -> CodegenResult<()>
pub fn generate_trait_to_file<P: AsRef<Path>>( &mut self, structure_def: &StructureDefinition, output_path: P, ) -> CodegenResult<()>
Generate a Rust trait and write it to a file
Sourcepub fn pre_register_value_set_enums<P: AsRef<Path>>(
&mut self,
package_dir: P,
) -> CodegenResult<()>
pub fn pre_register_value_set_enums<P: AsRef<Path>>( &mut self, package_dir: P, ) -> CodegenResult<()>
Pre-scan and register all ValueSet enums in the TypeRegistry This should be called before processing resources to ensure correct import paths
Sourcepub fn generate_enum_files<P: AsRef<Path>>(
&mut self,
enums_dir: P,
) -> CodegenResult<()>
pub fn generate_enum_files<P: AsRef<Path>>( &mut self, enums_dir: P, ) -> CodegenResult<()>
Generate all ValueSet enums to separate files in the specified directory
Sourcepub fn generate_enums_mod_file<P: AsRef<Path>>(
&self,
enums_dir: P,
) -> CodegenResult<()>
pub fn generate_enums_mod_file<P: AsRef<Path>>( &self, enums_dir: P, ) -> CodegenResult<()>
Generate a mod.rs file that re-exports all the enum modules
Sourcepub fn generate_enum_for_value_set(
&mut self,
value_set_url: &str,
) -> CodegenResult<Option<RustEnum>>
pub fn generate_enum_for_value_set( &mut self, value_set_url: &str, ) -> CodegenResult<Option<RustEnum>>
Generate an enum for a value set binding
Sourcepub fn has_cached_enums(&self) -> bool
pub fn has_cached_enums(&self) -> bool
Check if any ValueSet enums have been generated
Sourcepub fn to_filename(&self, structure_def: &StructureDefinition) -> String
pub fn to_filename(&self, structure_def: &StructureDefinition) -> String
Convert a FHIR resource type name to filename using snake_case
Sourcepub fn generate_trait_file_from_trait<P: AsRef<Path>>(
&self,
rust_trait: &RustTrait,
output_path: P,
) -> CodegenResult<()>
pub fn generate_trait_file_from_trait<P: AsRef<Path>>( &self, rust_trait: &RustTrait, output_path: P, ) -> CodegenResult<()>
Generate a comprehensive Resource trait with common FHIR resource methods Generate a trait file directly from a RustTrait object