| # -*- Mode: Python -*- | |
| # vim: filetype=python | |
| # | |
| # Positive QAPI doc comment tests | |
| { 'pragma': { 'doc-required': true } } | |
| ## | |
| # = 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} | |
| ## | |
| ## | |
| # @Enum: | |
| # | |
| # @one: The _one_ {and only} | |
| # | |
| # 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: | |
| # the first member | |
| ## | |
| { 'struct': 'Base', 'data': { 'base1': 'Enum' }, | |
| 'if': { 'all': ['IFALL1', 'IFALL2'] } } | |
| ## | |
| # @Variant1: | |
| # | |
| # A paragraph | |
| # | |
| # Another paragraph (but no @var: line) | |
| # | |
| # 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: an integer | |
| # @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: the first argument | |
| # | |
| # @arg2: the second | |
| # argument | |
| # | |
| # Features: | |
| # @cmd-feat1: a feature | |
| # @cmd-feat2: another feature | |
| # Note: @arg3 is undocumented | |
| # Returns: @Object | |
| # TODO: frobnicate | |
| # Notes: | |
| # | |
| # - Lorem ipsum dolor sit amet | |
| # - Ut enim ad minim veniam | |
| # | |
| # Duis aute irure dolor | |
| # Example: | |
| # | |
| # -> in | |
| # <- out | |
| # Examples: | |
| # - *verbatim* | |
| # - {braces} | |
| # 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 | |
| # Example: | |
| # | |
| # -> in | |
| # | |
| # <- out | |
| ## | |
| { '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' } |