<?xml version="1.0" encoding="utf-8"?> 
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
  <Type Name="VmaRawList&lt;*&gt;">
      <DisplayString>{{ Count={m_Count} }}</DisplayString>
      <Expand>
          <Item Name="[Count]">m_Count</Item>
          <LinkedListItems>
              <Size>m_Count</Size>
              <HeadPointer>m_pFront</HeadPointer>
              <NextPointer>pNext</NextPointer>
              <ValueNode>Value</ValueNode>
          </LinkedListItems>
      </Expand>
  </Type>

  <Type Name="VmaList&lt;*&gt;">
      <DisplayString>{{ Count={m_RawList.m_Count} }}</DisplayString>
      <Expand>
          <Item Name="[Count]">m_RawList.m_Count</Item>
          <LinkedListItems>
              <Size>m_RawList.m_Count</Size>
              <HeadPointer>m_RawList.m_pFront</HeadPointer>
              <NextPointer>pNext</NextPointer>
              <ValueNode>Value</ValueNode>
          </LinkedListItems>
      </Expand>
  </Type>

  <Type Name="VmaVector&lt;*&gt;">
      <DisplayString>{{ Count={m_Count} }}</DisplayString>
      <Expand>
          <Item Name="[Count]">m_Count</Item>
          <Item Name="[Capacity]">m_Capacity</Item>
          <ArrayItems>
              <Size>m_Count</Size>
              <ValuePointer>m_pArray</ValuePointer>
          </ArrayItems>
      </Expand>
  </Type>

  <!--
    Due to custom way of accesing next items in
    VmaIntrusiveLinkedList via methods in provided type traits,
    every specialization must be manually added with
    custom <NextPointer> field describing proper way of iterating the list.
  -->
  <Type Name="VmaIntrusiveLinkedList&lt;VmaDedicatedAllocationListItemTraits&gt;">
    <DisplayString>{{ Count={m_Count} }}</DisplayString>
    <Expand>
      <Item Name="[Count]">m_Count</Item>
      <LinkedListItems>
        <Size>m_Count</Size>
        <HeadPointer>m_Front</HeadPointer>
        <NextPointer>m_DedicatedAllocation.m_Next</NextPointer>
        <ValueNode>*this</ValueNode>
      </LinkedListItems>
    </Expand>
  </Type>
  <Type Name="VmaIntrusiveLinkedList&lt;VmaPoolListItemTraits&gt;">
    <DisplayString>{{ Count={m_Count} }}</DisplayString>
    <Expand>
      <Item Name="[Count]">m_Count</Item>
      <LinkedListItems>
        <Size>m_Count</Size>
        <HeadPointer>m_Front</HeadPointer>
        <NextPointer>m_NextPool</NextPointer>
        <ValueNode>*this</ValueNode>
      </LinkedListItems>
    </Expand>
  </Type>
</AutoVisualizer>