mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-27 04:13:53 -06:00
docs/qapi-domain: add :ifcond: directive option
Add a special :ifcond: option that allows us to annotate the definition-level conditionals. The syntax of the argument is currently undefined, but it's possible we can apply better formatting in the future. Currently, we just display the ifcond string as preformatted text. Signed-off-by: Harmonie Snow <harmonie@gmail.com> Signed-off-by: John Snow <jsnow@redhat.com> Message-ID: <20250311034303.75779-26-jsnow@redhat.com> Acked-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
This commit is contained in:
parent
d25808c2bc
commit
6a41330206
2 changed files with 34 additions and 2 deletions
|
@ -14,6 +14,7 @@ from typing import (
|
|||
NamedTuple,
|
||||
Optional,
|
||||
Tuple,
|
||||
Union,
|
||||
cast,
|
||||
)
|
||||
|
||||
|
@ -217,6 +218,7 @@ class QAPIObject(QAPIDescription):
|
|||
"module": directives.unchanged, # Override contextual module name
|
||||
# These are QAPI originals:
|
||||
"since": directives.unchanged,
|
||||
"ifcond": directives.unchanged,
|
||||
"deprecated": directives.flag,
|
||||
"unstable": directives.flag,
|
||||
}
|
||||
|
@ -288,9 +290,14 @@ class QAPIObject(QAPIDescription):
|
|||
infopips = nodes.container()
|
||||
infopips.attributes["classes"].append("qapi-infopips")
|
||||
|
||||
def _add_pip(source: str, content: str, classname: str) -> None:
|
||||
def _add_pip(
|
||||
source: str, content: Union[str, List[nodes.Node]], classname: str
|
||||
) -> None:
|
||||
node = nodes.container(source)
|
||||
node.append(nodes.Text(content))
|
||||
if isinstance(content, str):
|
||||
node.append(nodes.Text(content))
|
||||
else:
|
||||
node.extend(content)
|
||||
node.attributes["classes"].extend(["qapi-infopip", classname])
|
||||
infopips.append(node)
|
||||
|
||||
|
@ -308,6 +315,18 @@ class QAPIObject(QAPIDescription):
|
|||
"qapi-unstable",
|
||||
)
|
||||
|
||||
if self.options.get("ifcond", ""):
|
||||
ifcond = self.options["ifcond"]
|
||||
_add_pip(
|
||||
f":ifcond: {ifcond}",
|
||||
[
|
||||
nodes.emphasis("", "Availability"),
|
||||
nodes.Text(": "),
|
||||
nodes.literal(ifcond, ifcond),
|
||||
],
|
||||
"qapi-ifcond",
|
||||
)
|
||||
|
||||
if infopips.children:
|
||||
contentnode.insert(0, infopips)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue