Expand description
FHIR code generation library
This library provides functionality for generating Rust types from FHIR (Fast Healthcare Interoperability Resources) StructureDefinition files.
§Macro Call Generation
The library can generate macro calls for FHIR primitive types instead of regular struct fields. This provides better handling of FHIR’s primitive extension pattern where each primitive field can have an associated extension element.
To enable macro call generation, set use_macro_calls: true in your CodegenConfig:
use rh_codegen::CodegenConfig;
let mut config = CodegenConfig::default();
config.use_macro_calls = true;Re-exports§
pub use fhir_types::StructureDefinition;pub use generators::crate_generator::generate_crate_structure;pub use generators::crate_generator::generate_module_files;pub use generators::crate_generator::parse_package_metadata;pub use generators::crate_generator::CrateGenerationParams;pub use generators::file_generator::FhirTypeCategory;pub use generators::file_generator::FileGenerator;pub use generators::token_generator::TokenGenerator;pub use generators::utils::GeneratorUtils;pub use naming::Naming;pub use quality::format_generated_crate;pub use quality::QualityConfig;pub use value_sets::ValueSetConcept;pub use value_sets::ValueSetManager;
Modules§
- bindings
- Binding extraction from FHIR StructureDefinitions
- fhir_
types - FHIR-specific data structures
- generators
- Code generation modules for FHIR types
- invariants
- Invariant extraction from FHIR StructureDefinitions
- macros
- Macros for generating primitive FHIR fields with extension companions
- metadata
- FHIR type metadata structures
- naming
- Centralized naming utilities for FHIR code generation
- quality
- Quality assurance module for generated FHIR crates
- value_
sets - ValueSet management and code generation utilities
Macros§
- primitive_
base64binary - Generate a base64Binary field with optional extension companion
- primitive_
boolean - Generate a boolean field with optional extension companion
- primitive_
canonical - Generate a canonical field with optional extension companion
- primitive_
code - Generate a code field with optional extension companion
- primitive_
date - Generate a date field with optional extension companion
- primitive_
datetime - Generate a dateTime field with optional extension companion
- primitive_
decimal - Generate a decimal field with optional extension companion
- primitive_
id - Generate an id field with optional extension companion
- primitive_
instant - Generate an instant field with optional extension companion
- primitive_
integer - Generate an integer field with optional extension companion
- primitive_
markdown - Generate a markdown field with optional extension companion
- primitive_
oid - Generate an oid field with optional extension companion
- primitive_
positiveint - Generate a positiveInt field with optional extension companion
- primitive_
string - Generate a string field with optional extension companion
- primitive_
time - Generate a time field with optional extension companion
- primitive_
unsignedint - Generate an unsignedInt field with optional extension companion
- primitive_
uri - Generate a uri field with optional extension companion
- primitive_
url - Generate an url field with optional extension companion
- primitive_
uuid - Generate a uuid field with optional extension companion
Structs§
- Code
Generator - Main code generator struct that orchestrates specialized generators
- Codegen
Config - Configuration for the code generator
- Package
Dist - Package distribution information
- Package
Download Config - Configuration for package loading operations
- Package
Downloader - FHIR package loader for downloading from npm-style registries
- Package
Manifest - NPM-style package manifest structure
- Rust
Enum - Represents a generated Rust enum
- Rust
Struct - Represents a generated Rust struct
- Rust
Trait - Represents a Rust trait definition
- Rust
Trait Method - Represents a method declaration in a trait
- Type
Mapper - Handles mapping of FHIR types to Rust types
Enums§
- Codegen
Error - Errors specific to code generation.
- Foundation
Error - When enabled, primitive fields like
boolean,string,integer, etc. will be generated as macro calls such asprimitive_boolean!("active", true)instead of regular struct fields. These macros automatically generate both the primitive field and its companion extension field. Foundation error type providing common error variants. - Loader
Error - Errors that can occur during package loading operations.
- Rust
Type - Represents a Rust type
Traits§
- Config
- When enabled, primitive fields like
boolean,string,integer, etc. will be generated as macro calls such asprimitive_boolean!("active", true)instead of regular struct fields. These macros automatically generate both the primitive field and its companion extension field. Configuration trait that all configuration types should implement.
Functions§
- generate_
organized_ directories_ with_ traits - Generate organized directory structure with traits for resources
- generate_
resource_ trait_ for_ structure - Generate Resource trait for a specific structure definition
Type Aliases§
- Codegen
Result - Result type for codegen operations
- Loader
Result - Result type for loader operations