MCPcopy Create free account
hub / github.com/apache/fory / generate_module

Method generate_module

compiler/fory_compiler/generators/rust.py:634–681  ·  view source on GitHub ↗

Generate a Rust module with all types.

(self)

Source from the content-addressed store, hash-verified

632 return lines
633
634 def generate_module(self) -> GeneratedFile:
635 """Generate a Rust module with all types."""
636 lines = []
637
638 # License header
639 lines.append(self.get_license_header("//"))
640 lines.append("")
641
642 # Generate enums (top-level)
643 for enum in self.schema.enums:
644 if self.is_imported_type(enum):
645 continue
646 lines.extend(self.generate_enum(enum))
647 lines.append("")
648
649 # Generate unions (top-level)
650 for union in self.schema.unions:
651 if self.is_imported_type(union):
652 continue
653 lines.extend(self.generate_union(union))
654 lines.append("")
655
656 # Generate modules for nested types
657 for message in self.schema.messages:
658 if self.is_imported_type(message):
659 continue
660 module_lines = self.generate_nested_module(message)
661 if module_lines:
662 lines.extend(module_lines)
663 lines.append("")
664
665 # Generate messages (top-level only)
666 for message in self.schema.messages:
667 if self.is_imported_type(message):
668 continue
669 lines.extend(self.generate_message(message))
670 lines.append("")
671
672 # Generate registration function
673 lines.extend(self.generate_registration())
674 lines.append("")
675 lines.extend(self.generate_fory_helpers())
676 lines.append("")
677
678 return GeneratedFile(
679 path=f"{self.get_module_name()}.rs",
680 content="\n".join(lines),
681 )
682
683 def message_has_nested_enum(self, message: Message) -> bool:
684 if message.nested_enums:

Callers 1

generateMethod · 0.95

Calls 12

is_imported_typeMethod · 0.95
generate_enumMethod · 0.95
generate_unionMethod · 0.95
generate_messageMethod · 0.95
generate_registrationMethod · 0.95
generate_fory_helpersMethod · 0.95
get_module_nameMethod · 0.95
GeneratedFileClass · 0.90
get_license_headerMethod · 0.80
extendMethod · 0.80
appendMethod · 0.45

Tested by

no test coverage detected