<unit name="ok_attributes">
  <structure name="NonEmptyString" name_with_generic="NonEmptyString" type="class">
    <description><abstract>Delphi attributes test from http://www.malcolmgroves.com/blog/?p=530 Attribute class, without Attribute suffix, PasDoc should link to it</abstract></description>
    <ancestor name="TCustomAttribute" declaration="TCustomAttribute" />
    <routine name="Create" declaration="constructor Create(const AMessage: String);" visibility="public" type="constructor">
    </routine>
  </structure>
  <structure name="MinimumIntegerAttribute" name_with_generic="MinimumIntegerAttribute" type="class">
    <description><abstract>Attribute class, with Attribute suffix, PasDoc should link to it too</abstract></description>
    <ancestor name="TCustomAttribute" declaration="TCustomAttribute" />
    <routine name="Create" declaration="constructor Create(const MinInt: Integer; const AMessage: String);" visibility="public" type="constructor">
    </routine>
  </structure>
  <structure name="MaximumIntegerAttribute" name_with_generic="MaximumIntegerAttribute" type="class">
    <description><abstract>Attribute class, with Attribute suffix, PasDoc should link to it too</abstract></description>
    <ancestor name="TCustomAttribute" declaration="TCustomAttribute" />
    <routine name="Create" declaration="constructor Create(const MaxInt: Integer; const AMessage: String);" visibility="public" type="constructor">
    </routine>
  </structure>
  <structure name="TPerson" name_with_generic="TPerson" type="class">
    <ancestor name="TObject" declaration="TObject" />
    <property name="Name" declaration="property Name : String read FName write FName;" visibility="public" indexdecl="" type="String" reader="FName" writer="FName" default_in_class="False" default_value="" nodefault="False"   stored="">
    </property>
    <property name="Age" declaration="property Age : Integer read FAge write FAge;" visibility="public" indexdecl="" type="Integer" reader="FAge" writer="FAge" default_in_class="False" default_value="" nodefault="False"   stored="">
    </property>
  </structure>
  <structure name="IUIContainer" name_with_generic="IUIContainer" type="interface">
    <description><abstract>Test that GUIDs are handled gracefully</abstract></description>
    <ancestor name="IInterface" declaration="IInterface" />
  </structure>
  <structure name="TMyClass1" name_with_generic="TMyClass1" type="class">
    <description><abstract>Tests from https://github.com/pasdoc/pasdoc/issues/179</abstract></description>
    <ancestor name="TObject" declaration="TObject" />
    <variable name="FLockCount" declaration="FLockCount: Integer;" visibility="public">
    </variable>
  </structure>
  <structure name="TMyClass2" name_with_generic="TMyClass2" type="class">
    <ancestor name="TObject" declaration="TObject" />
    <variable name="FLockCount" declaration="var FLockCount: Integer;" visibility="public">
    </variable>
  </structure>
  <structure name="IEnumerator" name_with_generic="IEnumerator&lt;T&gt;" type="interface">
    <routine name="GetCurrent" declaration="function GetCurrent: T;" visibility="public" type="function">
    </routine>
    <property name="Current" declaration="property Current: T read GetCurrent;" visibility="public" indexdecl="" type="T" reader="GetCurrent" writer="" default_in_class="False" default_value="" nodefault="False"   stored="">
    </property>
  </structure>
  <structure name="TClassWithNested" name_with_generic="TClassWithNested" type="class">
    <description><abstract>Class with nested classes with attributes.</abstract><detailed> This testcase is based on TParallel from Delphi RTL declaration.</detailed></description>
    <ancestor name="TObject" declaration="TObject" />
    <structure name="TNestedClass" visibility="public" name_with_generic="TNestedClass" type="class">
      <ancestor name="TAncestor" declaration="TAncestor" />
      <structure name="TNestedClass2" visibility="public" name_with_generic="TNestedClass2" type="class">
        <ancestor name="TAncestor.TAncestorFlag" declaration="TAncestor.TAncestorFlag" />
        <routine name="InlineMethod" declaration="function InlineMethod: Int64; inline;" visibility="public" type="function">
        </routine>
        <routine name="Create" declaration="constructor Create;" visibility="protected" type="constructor">
        </routine>
        <routine name="ShouldExit" declaration="function ShouldExit(ThisIter: Int64): Boolean; overload;" visibility="protected" type="function">
        </routine>
        <routine name="ShouldExit" declaration="function ShouldExit: Boolean; overload;" visibility="protected" type="function">
        </routine>
        <variable name="FLowestBreakIter" declaration="FLowestBreakIter: Int64;" visibility="public">
        </variable>
        <property name="LowestBreakIter" declaration="property LowestBreakIter: Int64 read GetLowestBreakIter;" visibility="protected" indexdecl="" type="Int64" reader="GetLowestBreakIter" writer="" default_in_class="False" default_value="" nodefault="False"   stored="">
        </property>
      </structure>
    </structure>
    <structure name="TAnotherNestedClass" visibility="public" name_with_generic="TAnotherNestedClass" type="class">
      <ancestor name="TAncestor" declaration="TAncestor" />
      <structure name="TNestedClass2" visibility="public" name_with_generic="TNestedClass2" type="class">
        <ancestor name="TAncestor.TAncestorFlag" declaration="TAncestor.TAncestorFlag" />
        <variable name="FLowestBreakIter" declaration="FLowestBreakIter: Int64;" visibility="public">
        </variable>
        <variable name="FAnotherLowestBreakIter" declaration="FAnotherLowestBreakIter: Int64;" visibility="public">
        </variable>
      </structure>
      <structure name="TAnotherNestedClass2" visibility="public" name_with_generic="TAnotherNestedClass2" type="class">
        <ancestor name="TAncestor.TAncestorFlag" declaration="TAncestor.TAncestorFlag" />
        <variable name="FLowestBreakIter" declaration="FLowestBreakIter: Int64;" visibility="public">
        </variable>
        <variable name="FAnotherLowestBreakIter" declaration="FAnotherLowestBreakIter: Int64;" visibility="public">
        </variable>
      </structure>
    </structure>
  </structure>
</unit>
