|
@@ -78,6 +78,8 @@
|
|
|
|
|
|
|
|
|
class Transmogrifier:
|
|
|
+ # pylint: disable=too-many-public-methods
|
|
|
+
|
|
|
# Field names used for different entity types:
|
|
|
field_types = {
|
|
|
"enum": "value",
|
|
@@ -362,6 +364,25 @@ def visit_freeform(self, doc: QAPIDoc) -> None:
|
|
|
self.add_lines(text, info)
|
|
|
self.ensure_blank_line()
|
|
|
|
|
|
+ def visit_entity(self, ent: QAPISchemaDefinition) -> None:
|
|
|
+ assert ent.info
|
|
|
+
|
|
|
+ try:
|
|
|
+ self._curr_ent = ent
|
|
|
+
|
|
|
+ # Squish structs and unions together into an "object" directive.
|
|
|
+ meta = ent.meta
|
|
|
+ if meta in ("struct", "union"):
|
|
|
+ meta = "object"
|
|
|
+
|
|
|
+ # This line gets credited to the start of the /definition/.
|
|
|
+ self.add_line(f".. qapi:{meta}:: {ent.name}", ent.info)
|
|
|
+ with self.indented():
|
|
|
+ self.preamble(ent)
|
|
|
+ self.visit_sections(ent)
|
|
|
+ finally:
|
|
|
+ self._curr_ent = None
|
|
|
+
|
|
|
|
|
|
class QAPISchemaGenDepVisitor(QAPISchemaVisitor):
|
|
|
"""A QAPI schema visitor which adds Sphinx dependencies each module
|