pub struct FileIoManager<'a> { /* private fields */ }Expand description
Manager for file I/O operations in code generation
Implementations§
Source§impl<'a> FileIoManager<'a>
impl<'a> FileIoManager<'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 I/O manager
Sourcepub fn load_structure_definition<P: AsRef<Path>>(
path: P,
) -> CodegenResult<StructureDefinition>
pub fn load_structure_definition<P: AsRef<Path>>( path: P, ) -> CodegenResult<StructureDefinition>
Load and parse a FHIR StructureDefinition from a JSON file
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_traits_to_organized_directory<P: AsRef<Path>>(
&self,
structure_def: &StructureDefinition,
base_output_dir: P,
rust_traits: &[RustTrait],
) -> CodegenResult<()>
pub fn generate_traits_to_organized_directory<P: AsRef<Path>>( &self, structure_def: &StructureDefinition, base_output_dir: P, rust_traits: &[RustTrait], ) -> CodegenResult<()>
Generate multiple traits and write them to the traits directory
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 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_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 Rust traits and write them 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_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 collect_nested_structs(
struct_name: &str,
type_cache: &HashMap<String, RustStruct>,
) -> Vec<RustStruct>
pub fn collect_nested_structs( struct_name: &str, type_cache: &HashMap<String, RustStruct>, ) -> Vec<RustStruct>
Collect nested structs from the type cache that are related to a main struct
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 ensure_directory(dir_path: &Path) -> CodegenResult<()>
pub fn ensure_directory(dir_path: &Path) -> CodegenResult<()>
Ensure the given directory exists, creating it if necessary
Sourcepub fn get_output_path_for_structure<P: AsRef<Path>>(
base_dir: P,
structure_def: &StructureDefinition,
file_generator: &FileGenerator<'_>,
) -> PathBuf
pub fn get_output_path_for_structure<P: AsRef<Path>>( base_dir: P, structure_def: &StructureDefinition, file_generator: &FileGenerator<'_>, ) -> PathBuf
Generate the appropriate file path for a structure definition
Sourcepub fn get_traits_directory_path<P: AsRef<Path>>(base_dir: P) -> PathBuf
pub fn get_traits_directory_path<P: AsRef<Path>>(base_dir: P) -> PathBuf
Generate the traits directory path
Sourcepub fn get_trait_file_path<P: AsRef<Path>>(
base_dir: P,
structure_def: &StructureDefinition,
) -> PathBuf
pub fn get_trait_file_path<P: AsRef<Path>>( base_dir: P, structure_def: &StructureDefinition, ) -> PathBuf
Generate the trait file path for a structure definition