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

Method generate_enum

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

Source from the content-addressed store, hash-verified

933 return lineage
934
935 def generate_enum(
936 self,
937 enum: Enum,
938 indent: int = 0,
939 parent_stack: Optional[List[Message]] = None,
940 ) -> List[str]:
941 lines: List[str] = []
942 ind = self.indent_str * indent
943 type_name = self._declared_type_name(enum.name, parent_stack)
944 comment = self.format_type_id_comment(enum, f"{ind}//")
945 if comment:
946 lines.append(comment)
947 lines.append(f"{ind}@ForyEnum")
948 lines.append(f"{ind}public enum {type_name}: Int32, CaseIterable {{")
949 for value in enum.values:
950 stripped_name = self.strip_enum_prefix(enum.name, value.name)
951 case_name = self.safe_enum_case_name(stripped_name)
952 lines.append(f"{ind}{self.indent_str}case {case_name} = {value.value}")
953 lines.append("")
954 lines.extend(self.generate_bytes_methods(type_name, indent + 1))
955 lines.append(f"{ind}}}")
956 return lines
957
958 def generate_union(
959 self,

Callers 2

generate_fileMethod · 0.95
generate_messageMethod · 0.95

Calls 7

_declared_type_nameMethod · 0.95
safe_enum_case_nameMethod · 0.95
strip_enum_prefixMethod · 0.80
extendMethod · 0.80
appendMethod · 0.45

Tested by

no test coverage detected