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

Method generate_message

compiler/fory_compiler/generators/go.py:913–950  ·  view source on GitHub ↗

Generate a Go struct.

(
        self,
        message: Message,
        parent_stack: Optional[List[Message]] = None,
    )

Source from the content-addressed store, hash-verified

911 return None
912
913 def generate_message(
914 self,
915 message: Message,
916 parent_stack: Optional[List[Message]] = None,
917 ) -> List[str]:
918 """Generate a Go struct."""
919 lines = []
920
921 type_name = self.get_type_name(message.name, parent_stack)
922 lineage = (parent_stack or []) + [message]
923
924 comment = self.format_type_id_comment(message, "//")
925 if comment:
926 lines.append(comment)
927 lines.append(f"type {type_name} struct {{")
928
929 # Fields
930 for field in message.fields:
931 field_lines = self.generate_field(field, lineage)
932 for line in field_lines:
933 lines.append(f"\t{line}")
934
935 lines.append("}")
936 lines.append("")
937 if not self.get_effective_evolving(message):
938 lines.append(f"func (*{type_name}) ForyEvolving() bool {{")
939 lines.append("\treturn false")
940 lines.append("}")
941 lines.append("")
942 lines.append(f"func (m *{type_name}) ToBytes() ([]byte, error) {{")
943 lines.append("\treturn getFory().Serialize(m)")
944 lines.append("}")
945 lines.append("")
946 lines.append(f"func (m *{type_name}) FromBytes(data []byte) error {{")
947 lines.append("\treturn getFory().Deserialize(data, m)")
948 lines.append("}")
949
950 return lines
951
952 def generate_message_with_nested(
953 self,

Callers 1

Calls 5

get_type_nameMethod · 0.95
generate_fieldMethod · 0.95
appendMethod · 0.45

Tested by

no test coverage detected