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

Method generate_struct_init

compiler/fory_compiler/generators/swift.py:1120–1159  ·  view source on GitHub ↗
(
        self,
        message: Message,
        lineage: List[Message],
        indent: int,
    )

Source from the content-addressed store, hash-verified

1118 return lines
1119
1120 def generate_struct_init(
1121 self,
1122 message: Message,
1123 lineage: List[Message],
1124 indent: int,
1125 ) -> List[str]:
1126 ind = self.indent_str * indent
1127 lines: List[str] = []
1128 if not message.fields:
1129 lines.append(f"{ind}public init() {{}}")
1130 return lines
1131
1132 params: List[str] = []
1133 assignments: List[str] = []
1134 used_names: Set[str] = set()
1135 for field in message.fields:
1136 field_name = self.safe_member_name(field.name)
1137 suffix = 1
1138 base_name = field_name
1139 while field_name in used_names:
1140 field_name = f"{base_name}{suffix}"
1141 suffix += 1
1142 used_names.add(field_name)
1143
1144 field_type = self.field_swift_type(field, lineage)
1145 default_expr = self.field_default_expression(field, field_type)
1146 if default_expr is None:
1147 default_expr = "nil"
1148 params.append(f"{field_name}: {field_type} = {default_expr}")
1149 assignments.append(f"self.{field_name} = {field_name}")
1150
1151 lines.append(f"{ind}public init(")
1152 for i, param in enumerate(params):
1153 comma = "," if i < len(params) - 1 else ""
1154 lines.append(f"{ind}{self.indent_str}{param}{comma}")
1155 lines.append(f"{ind}) {{")
1156 for assignment in assignments:
1157 lines.append(f"{ind}{self.indent_str}{assignment}")
1158 lines.append(f"{ind}}}")
1159 return lines
1160
1161 def generate_bytes_methods(self, type_name: str, indent: int) -> List[str]:
1162 ind = self.indent_str * indent

Callers 1

generate_messageMethod · 0.95

Calls 6

safe_member_nameMethod · 0.95
field_swift_typeMethod · 0.95
addMethod · 0.65
setFunction · 0.50
appendMethod · 0.45

Tested by

no test coverage detected