pub struct FileGenerator<'a> { /* private fields */ }Expand description
File generator for organizing and writing generated code
Implementations§
Source§impl<'a> FileGenerator<'a>
impl<'a> FileGenerator<'a>
Sourcepub fn new(
config: &'a CodegenConfig,
token_generator: &'a TokenGenerator,
) -> Self
pub fn new( config: &'a CodegenConfig, token_generator: &'a TokenGenerator, ) -> Self
Create a new file generator
Sourcepub fn generate_macros_file<P: AsRef<Path>>(
&self,
output_path: P,
) -> CodegenResult<()>
pub fn generate_macros_file<P: AsRef<Path>>( &self, output_path: P, ) -> CodegenResult<()>
Generate a macros.rs file with all FHIR primitive macros
Sourcepub fn generate_lib_file<P: AsRef<Path>>(
&self,
output_path: P,
) -> CodegenResult<()>
pub fn generate_lib_file<P: AsRef<Path>>( &self, output_path: P, ) -> CodegenResult<()>
Generate a lib.rs file for the generated crate
Sourcepub fn generate_module_file<P: AsRef<Path>>(
&self,
module_dir: P,
module_names: &[String],
) -> CodegenResult<()>
pub fn generate_module_file<P: AsRef<Path>>( &self, module_dir: P, module_names: &[String], ) -> CodegenResult<()>
Generate module files (mod.rs) for organized directories
Sourcepub fn generate_combined_primitives_file<P: AsRef<Path>>(
&self,
primitive_structure_defs: &[StructureDefinition],
output_path: P,
) -> CodegenResult<()>
pub fn generate_combined_primitives_file<P: AsRef<Path>>( &self, primitive_structure_defs: &[StructureDefinition], output_path: P, ) -> CodegenResult<()>
Generate a combined primitives.rs file with all FHIR primitive type aliases
Sourcepub fn generate_to_organized_directories<P: AsRef<Path>>(
&self,
structure_def: &StructureDefinition,
base_output_dir: P,
rust_struct: &RustStruct,
nested_structs: &[RustStruct],
) -> CodegenResult<()>
pub fn generate_to_organized_directories<P: AsRef<Path>>( &self, structure_def: &StructureDefinition, base_output_dir: P, rust_struct: &RustStruct, nested_structs: &[RustStruct], ) -> 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>>(
&self,
structure_def: &StructureDefinition,
base_output_dir: P,
rust_trait: &RustTrait,
) -> CodegenResult<()>
pub fn generate_trait_to_organized_directory<P: AsRef<Path>>( &self, structure_def: &StructureDefinition, base_output_dir: P, rust_trait: &RustTrait, ) -> CodegenResult<()>
Generate a trait and write it 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>>(
&self,
structure_def: &StructureDefinition,
output_path: P,
rust_struct: &RustStruct,
nested_structs: &[RustStruct],
) -> CodegenResult<()>
pub fn generate_to_file<P: AsRef<Path>>( &self, structure_def: &StructureDefinition, output_path: P, rust_struct: &RustStruct, nested_structs: &[RustStruct], ) -> CodegenResult<()>
Generate a Rust struct and write it to a file
Sourcepub fn generate_trait_to_file<P: AsRef<Path>>(
&self,
_structure_def: &StructureDefinition,
output_path: P,
rust_trait: &RustTrait,
) -> CodegenResult<()>
pub fn generate_trait_to_file<P: AsRef<Path>>( &self, _structure_def: &StructureDefinition, output_path: P, rust_trait: &RustTrait, ) -> CodegenResult<()>
Generate a Rust trait and write it to a file
Sourcepub fn generate_traits_to_file<P: AsRef<Path>>(
&self,
_structure_def: &StructureDefinition,
output_path: P,
rust_traits: &[&RustTrait],
) -> CodegenResult<()>
pub fn generate_traits_to_file<P: AsRef<Path>>( &self, _structure_def: &StructureDefinition, output_path: P, rust_traits: &[&RustTrait], ) -> CodegenResult<()>
Generate multiple traits to a single file
Sourcepub fn generate_enum_files<P: AsRef<Path>>(
&self,
enums_dir: P,
enum_generator: &EnumGenerator<'_>,
) -> CodegenResult<()>
pub fn generate_enum_files<P: AsRef<Path>>( &self, enums_dir: P, enum_generator: &EnumGenerator<'_>, ) -> 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,
enum_generator: &EnumGenerator<'_>,
) -> CodegenResult<()>
pub fn generate_enums_mod_file<P: AsRef<Path>>( &self, enums_dir: P, enum_generator: &EnumGenerator<'_>, ) -> CodegenResult<()>
Generate a mod.rs file that re-exports all the enum modules
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 trait file directly from a RustTrait object
Sourcepub fn generate_complete_crate<P: AsRef<Path>>(
&self,
output_dir: P,
crate_name: &str,
_structures: &[StructureDefinition],
) -> CodegenResult<()>
pub fn generate_complete_crate<P: AsRef<Path>>( &self, output_dir: P, crate_name: &str, _structures: &[StructureDefinition], ) -> CodegenResult<()>
Generate a complete crate structure with all necessary files and modules