<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
    <Type Name="Seele::Array&lt;*&gt;">
        <DisplayString>{{ size={arraySize} }}</DisplayString>
        <Expand>
            <Item Name="[size]" ExcludeView="simple">arraySize</Item>
            <Item Name="[allocated]" ExcludeView="simple">allocated</Item>
            <ArrayItems>
                <Size>arraySize</Size>
                <ValuePointer>_data</ValuePointer>
            </ArrayItems>
        </Expand>
    </Type>
    <Type Name="Seele::StaticArray&lt;*,*&gt;">
        <DisplayString>{{ size={$T2} }}</DisplayString>
        <Expand>
            <ArrayItems>
                <Size>$T2</Size>
                <ValuePointer>_data</ValuePointer>
            </ArrayItems>
        </Expand>
    </Type>
    <Type Name="Seele::List&lt;*&gt;">
        <DisplayString>{{ size={_size} }}</DisplayString>
        <Expand>
            <Item Name="[size]" ExcludeView="simple">_size</Item>
            <LinkedListItems>
                <Size>_size</Size>
                <HeadPointer>root</HeadPointer>
                <NextPointer>next</NextPointer>
                <ValueNode>data</ValueNode>
            </LinkedListItems>
        </Expand>
    </Type>
    <Type Name="Seele::Pair&lt;*,*&gt;">
        <DisplayString>[{key}, {value}]</DisplayString>
        <Expand>
            <Item Name="[key]">key</Item>
            <Item Name="[value]">value</Item>
        </Expand>
    </Type>
    <Type Name="Seele::Tree&lt;*&gt;">
        <DisplayString>{{ size={_size} }</DisplayString>
        <Expand>
            <Item Name="[size]">_size</Item>
            <Item Name="[comp]">comp</Item>
            <TreeItems>
                <Size>_size</Size>
                <HeadPointer>root</HeadPointer>
                <LeftPointer>leftChild</LeftPointer>
                <RightPointer>rightChild</RightPointer>
                <ValueNode>data</ValueNode>
            </TreeItems>
        </Expand>
    </Type>
    <Type Name="Seele::RefPtr&lt;*&gt;">
        <DisplayString Condition="object == nullptr">empty</DisplayString>
        <DisplayString>RefPtr {*object}</DisplayString>
        <Expand>
            <ExpandedItem>object</ExpandedItem>
        </Expand>
    </Type>
    <Type Name="Seele::UniquePtr&lt;*&gt;">
        <DisplayString>UniquePtr {*handle}</DisplayString>
        <Expand>
            <ExpandedItem>handle</ExpandedItem>
        </Expand>
    </Type>
</AutoVisualizer>
