# -*- Mode: Python -*-
# Positive QAPI doc comment tests

{ 'pragma': { 'doc-required': true } }

##
# = Section
#
# == Subsection
#
# *strong* _with emphasis_
# @var {in braces}
# * List item one
# - Two, multiple
#   lines
#
# 3. Three
# Still in list
#
#   Not in list
# - Second list
# Note: still in list
#
# Note: not in list
# 1. Third list
#    is numbered
#
# - another item
#
# | example
# | multiple lines
#
# 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}
#
# @two is undocumented
##
{ 'enum': 'Enum', 'data': [ 'one', 'two' ], 'if': 'defined(IFCOND)' }

##
# @Base:
# @base1:
#   the first member
##
{ 'struct': 'Base', 'data': { 'base1': 'Enum' } }

##
# @Variant1:
# A paragraph
#
# Another paragraph (but no @var: line)
##
{ 'struct': 'Variant1', 'data': { 'var1': 'str' } }

##
# @Variant2:
##
{ 'struct': 'Variant2', 'data': {} }

##
# @Object:
##
{ 'union': 'Object',
  'base': 'Base',
  'discriminator': 'base1',
  'data': { 'one': 'Variant1', 'two': 'Variant2' } }

##
# @SugaredUnion:
##
{ 'union': 'SugaredUnion',
  'data': { 'one': 'Variant1', 'two': 'Variant2' } }

##
# == Another subsection
##

##
# @cmd:
# @arg1: the first argument
#
# @arg2: the second
# argument
# 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' }

##
# @cmd-boxed:
# If you're bored enough to read this, go see a video of boxed cats
# Example:
#
# -> in
#
# <- out
##
{ 'command': 'cmd-boxed', 'boxed': true,
  'data': 'Object' }
