docs/qapi-domain: add qapi:command directive

This commit adds a stubbed version of QAPICommand that utilizes the
QAPIObject class, the qapi:command directive, the :qapi:cmd:
cross-reference role, and the "command" object type in the QAPI object
registry.

They don't do anything *particularly* interesting yet, but that will
come in forthcoming commits.

Signed-off-by: John Snow <jsnow@redhat.com>
Message-ID: <20250311034303.75779-14-jsnow@redhat.com>
Acked-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
This commit is contained in:
John Snow 2025-03-10 23:42:11 -04:00 committed by Markus Armbruster
parent 8799c3641a
commit 758bbdcd12

View file

@ -258,6 +258,12 @@ class QAPIObject(QAPIDescription):
return sig
class QAPICommand(QAPIObject):
"""Description of a QAPI Command."""
# Nothing unique for now! Changed in later commits O:-)
class QAPIModule(QAPIDescription):
"""
Directive to mark description of a new module.
@ -379,12 +385,14 @@ class QAPIDomain(Domain):
# for each object type.
object_types: Dict[str, ObjType] = {
"module": ObjType(_("module"), "mod", "any"),
"command": ObjType(_("command"), "cmd", "any"),
}
# Each of these provides a rST directive,
# e.g. .. qapi:module:: block-core
directives = {
"module": QAPIModule,
"command": QAPICommand,
}
# These are all cross-reference roles; e.g.
@ -392,6 +400,7 @@ class QAPIDomain(Domain):
# the object_types table values above.
roles = {
"mod": QAPIXRefRole(),
"cmd": QAPIXRefRole(),
"any": QAPIXRefRole(), # reference *any* type of QAPI object.
}