Skip to main content

Crate rh_codegen

Crate rh_codegen 

Source
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§

CodeGenerator
Main code generator struct that orchestrates specialized generators
CodegenConfig
Configuration for the code generator
PackageDist
Package distribution information
PackageDownloadConfig
Configuration for package loading operations
PackageDownloader
FHIR package loader for downloading from npm-style registries
PackageManifest
NPM-style package manifest structure
RustEnum
Represents a generated Rust enum
RustStruct
Represents a generated Rust struct
RustTrait
Represents a Rust trait definition
RustTraitMethod
Represents a method declaration in a trait
TypeMapper
Handles mapping of FHIR types to Rust types

Enums§

CodegenError
Errors specific to code generation.
FoundationError
When enabled, primitive fields like boolean, string, integer, etc. will be generated as macro calls such as primitive_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.
LoaderError
Errors that can occur during package loading operations.
RustType
Represents a Rust type

Traits§

Config
When enabled, primitive fields like boolean, string, integer, etc. will be generated as macro calls such as primitive_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§

CodegenResult
Result type for codegen operations
LoaderResult
Result type for loader operations