(
self,
message: Message,
indent: int = 0,
parent_stack: Optional[List[Message]] = None,
)
| 455 | return self.generate_case_class(message, indent, parent_stack) |
| 456 | |
| 457 | def generate_case_class( |
| 458 | self, |
| 459 | message: Message, |
| 460 | indent: int = 0, |
| 461 | parent_stack: Optional[List[Message]] = None, |
| 462 | ) -> List[str]: |
| 463 | ind = self.indent_str * indent |
| 464 | current_stack = self.current_stack(parent_stack, message) |
| 465 | lines = [f"{ind}@ForyStruct", f"{ind}final case class {message.name}("] |
| 466 | for index, field in enumerate(message.fields): |
| 467 | suffix = "," if index < len(message.fields) - 1 else "" |
| 468 | lines.append( |
| 469 | f"{ind} {self.generate_parameter(field, current_stack)}{suffix}" |
| 470 | ) |
| 471 | lines.append(f"{ind}) derives ForySerializer {{") |
| 472 | lines.extend(self.generate_to_bytes(message, indent + 1)) |
| 473 | lines.append(f"{ind}}}") |
| 474 | lines.append("") |
| 475 | lines.extend(self.generate_companion(message, indent, current_stack)) |
| 476 | return lines |
| 477 | |
| 478 | def generate_normal_class( |
| 479 | self, |
no test coverage detected