# -*- Mode: Python -*- # vim: filetype=python # # Positive QAPI doc comment tests { 'pragma': { 'doc-required': true, 'documentation-exceptions': [ 'Enum', 'Variant1', 'Alternate', 'cmd' ] } } ## # = Section ## ## # == Subsection # # *with emphasis* # @var {in braces} # # * List item one # * Two, multiple # lines # # * Three # Still in list # # Not in list # # - Second list # Note: still in list # # Note: not in list # # 1. Third list # is numbered # # 2. another item # # Returns: the King # Since: the first age # Notes: # # 1. Lorem ipsum dolor sit amet # # 2. Ut enim ad minim veniam # # Duis aute irure dolor # # Example: # # -> in # <- out # Examples: # - *verbatim* # - {braces} ## # Not a doc comment ## # @Enum: # # @one: The _one_ {and only}, description on the same line # # Features: # @enum-feat: Also _one_ {and only} # @enum-member-feat: a member feature # # @two is undocumented ## { 'enum': 'Enum', 'data': [ { 'name': 'one', 'if': 'IFONE', 'features': [ 'enum-member-feat' ] }, 'two' ], 'features': [ 'enum-feat' ], 'if': 'IFCOND' } ## # @Base: # # @base1: # description starts on a new line, # minimally indented ## { 'struct': 'Base', 'data': { 'base1': 'Enum' }, 'if': { 'all': ['IFALL1', 'IFALL2'] } } ## # @Variant1: # # A paragraph # # Another paragraph # # @var1 is undocumented # # Features: # @variant1-feat: a feature # @member-feat: a member feature ## { 'struct': 'Variant1', 'features': [ 'variant1-feat' ], 'data': { 'var1': { 'type': 'str', 'features': [ 'member-feat' ], 'if': 'IFSTR' } } } ## # @Variant2: # ## { 'struct': 'Variant2', 'data': {} } ## # @Object: # # Features: # @union-feat1: a feature ## { 'union': 'Object', 'features': [ 'union-feat1' ], 'base': 'Base', 'discriminator': 'base1', 'data': { 'one': 'Variant1', 'two': { 'type': 'Variant2', 'if': { 'any': ['IFONE', 'IFTWO'] } } } } ## # @Alternate: # # @i: description starts on the same line # remainder indented the same # @b is undocumented # # Features: # @alt-feat: a feature ## { 'alternate': 'Alternate', 'features': [ 'alt-feat' ], 'data': { 'i': 'int', 'b': 'bool' }, 'if': { 'not': { 'any': [ 'IFONE', 'IFTWO' ] } } } ## # == Another subsection ## ## # @cmd: # # @arg1: # description starts on a new line, # indented # # @arg2: description starts on the same line # remainder indented differently # # Features: # @cmd-feat1: a feature # @cmd-feat2: another feature # # .. note:: @arg3 is undocumented # # Returns: @Object # # Errors: some # # TODO: frobnicate # # .. admonition:: Notes # # - Lorem ipsum dolor sit amet # - Ut enim ad minim veniam # # Duis aute irure dolor # # .. qmp-example:: # :title: Ideal fast-food burger situation # # -> "in" # <- "out" # # Examples:: # # - Not a QMP code block # - Merely a preformatted code block literal # It isn't even an rST list. # - *verbatim* # - {braces} # # Note:: # Ceci n'est pas une note # # Since: 2.10 ## { 'command': 'cmd', 'data': { 'arg1': 'int', '*arg2': 'str', 'arg3': 'bool' }, 'returns': 'Object', 'features': [ 'cmd-feat1', 'cmd-feat2' ] } ## # @cmd-boxed: # If you're bored enough to read this, go see a video of boxed cats # # Features: # @cmd-feat1: a feature # @cmd-feat2: another feature # # .. qmp-example:: # # -> "this example" # # <- "has no title" ## { 'command': 'cmd-boxed', 'boxed': true, 'data': 'Object', 'features': [ 'cmd-feat1', 'cmd-feat2' ] } ## # @EVT_BOXED: # # Features: # @feat3: a feature ## { 'event': 'EVT_BOXED', 'boxed': true, 'features': [ 'feat3' ], 'data': 'Object' }