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

Class Message

compiler/fory_compiler/ir/ast.py:191–231  ·  view source on GitHub ↗

A message definition.

Source from the content-addressed store, hash-verified

189
190@dataclass
191class Message:
192 """A message definition."""
193
194 name: str
195 type_id: Optional[int]
196 fields: List[Field] = field(default_factory=list)
197 nested_messages: List["Message"] = field(default_factory=list)
198 nested_enums: List["Enum"] = field(default_factory=list)
199 nested_unions: List["Union"] = field(default_factory=list)
200 options: dict = field(default_factory=dict)
201 line: int = 0
202 column: int = 0
203 location: Optional[SourceLocation] = None
204 id_generated: bool = False
205 id_source: Optional[str] = None
206 source_package: Optional[str] = None
207
208 def __repr__(self) -> str:
209 id_str = f" [id={self.type_id}]" if self.type_id is not None else ""
210 nested_str = ""
211 if self.nested_messages or self.nested_enums or self.nested_unions:
212 nested_str = f", nested={len(self.nested_messages)}msg+{len(self.nested_enums)}enum+{len(self.nested_unions)}union"
213 opts_str = f", options={len(self.options)}" if self.options else ""
214 return (
215 f"Message({self.name}{id_str}, fields={self.fields}{nested_str}{opts_str})"
216 )
217
218 def get_nested_type(
219 self, name: str
220 ) -> Optional[TypingUnion["Message", "Enum", "Union"]]:
221 """Look up a nested type by name."""
222 for msg in self.nested_messages:
223 if msg.name == name:
224 return msg
225 for enum in self.nested_enums:
226 if enum.name == name:
227 return enum
228 for union in self.nested_unions:
229 if union.name == name:
230 return union
231 return None
232
233
234@dataclass

Callers 5

_translate_messageMethod · 0.90
parse_messageMethod · 0.90
_translate_structMethod · 0.90
_translate_tableMethod · 0.90

Calls 1

fieldFunction · 0.50

Tested by 1