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

Method generate_message

compiler/fory_compiler/generators/swift.py:1000–1074  ·  view source on GitHub ↗
(
        self,
        message: Message,
        indent: int = 0,
        parent_stack: Optional[List[Message]] = None,
    )

Source from the content-addressed store, hash-verified

998 return lines
999
1000 def generate_message(
1001 self,
1002 message: Message,
1003 indent: int = 0,
1004 parent_stack: Optional[List[Message]] = None,
1005 ) -> List[str]:
1006 lines: List[str] = []
1007 ind = self.indent_str * indent
1008 parent_stack = parent_stack or []
1009 lineage = parent_stack + [message]
1010 type_name = self._declared_type_name(message.name, parent_stack)
1011 is_class = self.message_is_class(message)
1012
1013 comment = self.format_type_id_comment(message, f"{ind}//")
1014 if comment:
1015 lines.append(comment)
1016 if self.get_effective_evolving(message):
1017 lines.append(f"{ind}@ForyStruct")
1018 else:
1019 lines.append(f"{ind}@ForyStruct(evolving: false)")
1020
1021 if is_class:
1022 declaration = f"public final class {type_name}"
1023 else:
1024 conformance = (
1025 ": Equatable" if self.message_supports_equatable(message) else ""
1026 )
1027 declaration = f"public struct {type_name}{conformance}"
1028 lines.append(f"{ind}{declaration} {{")
1029
1030 for nested_enum in message.nested_enums:
1031 lines.append("")
1032 lines.extend(
1033 self.generate_enum(
1034 nested_enum,
1035 indent=indent + 1,
1036 parent_stack=lineage,
1037 )
1038 )
1039
1040 for nested_union in message.nested_unions:
1041 lines.append("")
1042 lines.extend(
1043 self.generate_union(
1044 nested_union,
1045 indent=indent + 1,
1046 parent_stack=lineage,
1047 )
1048 )
1049
1050 for nested_msg in message.nested_messages:
1051 lines.append("")
1052 lines.extend(
1053 self.generate_message(
1054 nested_msg,
1055 indent=indent + 1,
1056 parent_stack=lineage,
1057 )

Callers 1

generate_fileMethod · 0.95

Calls 12

_declared_type_nameMethod · 0.95
message_is_classMethod · 0.95
generate_enumMethod · 0.95
generate_unionMethod · 0.95
generate_struct_initMethod · 0.95
extendMethod · 0.80
appendMethod · 0.45

Tested by

no test coverage detected