pub struct StructGenerator<'a> { /* private fields */ }Expand description
Struct generator for FHIR StructureDefinitions
Implementations§
Source§impl<'a> StructGenerator<'a>
impl<'a> StructGenerator<'a>
Sourcepub fn new(
config: &'a CodegenConfig,
type_cache: &'a mut HashMap<String, RustStruct>,
value_set_manager: &'a mut ValueSetManager,
) -> Self
pub fn new( config: &'a CodegenConfig, type_cache: &'a mut HashMap<String, RustStruct>, value_set_manager: &'a mut ValueSetManager, ) -> Self
Create a new struct generator
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_primitive_type_struct(
&mut self,
structure_def: &StructureDefinition,
rust_struct: RustStruct,
) -> CodegenResult<RustStruct>
pub fn generate_primitive_type_struct( &mut self, structure_def: &StructureDefinition, rust_struct: RustStruct, ) -> CodegenResult<RustStruct>
Generate a primitive type struct with special FHIR primitive type semantics
Sourcepub fn generate_nested_struct(
&mut self,
parent_struct_name: &str,
nested_field_name: &str,
nested_elements: &[ElementDefinition],
parent_structure_def: &StructureDefinition,
) -> CodegenResult<Option<RustStruct>>
pub fn generate_nested_struct( &mut self, parent_struct_name: &str, nested_field_name: &str, nested_elements: &[ElementDefinition], parent_structure_def: &StructureDefinition, ) -> CodegenResult<Option<RustStruct>>
Generate a nested struct for BackboneElements
Sourcepub fn should_use_nested_struct_type(
&self,
element: &ElementDefinition,
element_types: &[ElementType],
) -> bool
pub fn should_use_nested_struct_type( &self, element: &ElementDefinition, element_types: &[ElementType], ) -> bool
Check if a field should use a nested struct type instead of BackboneElement
Sourcepub fn create_field_from_element(
&mut self,
element: &ElementDefinition,
) -> CodegenResult<Option<RustField>>
pub fn create_field_from_element( &mut self, element: &ElementDefinition, ) -> CodegenResult<Option<RustField>>
Create a RustField from an ElementDefinition
Sourcepub fn create_fields_from_element(
&mut self,
element: &ElementDefinition,
) -> CodegenResult<Vec<RustField>>
pub fn create_fields_from_element( &mut self, element: &ElementDefinition, ) -> CodegenResult<Vec<RustField>>
Create RustField(s) from an ElementDefinition (supports choice types)
Auto Trait Implementations§
impl<'a> Freeze for StructGenerator<'a>
impl<'a> RefUnwindSafe for StructGenerator<'a>
impl<'a> Send for StructGenerator<'a>
impl<'a> Sync for StructGenerator<'a>
impl<'a> Unpin for StructGenerator<'a>
impl<'a> UnsafeUnpin for StructGenerator<'a>
impl<'a> !UnwindSafe for StructGenerator<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more