<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
  <Type Name="smallvec::SmallVec&lt;array$&lt;*,*&gt;&gt;" Priority="Medium">
    <Intrinsic Name="is_inline" Expression="$T2 &gt;= capacity" />
    <Intrinsic Name="len" Expression="is_inline() ? capacity : data.variant1.value.len" />
    <Intrinsic Name="data_ptr" Expression="is_inline() ? data.variant0.value.__0.value.value : data.variant1.value.ptr.pointer" />

    <DisplayString>{{ len={len()} is_inline={is_inline()} }}</DisplayString>
    <Expand>
        <Item Name="[capacity]">is_inline() ? $T2 : capacity</Item>
        <Item Name="[len]">len()</Item>
        <Item Name="[data_ptr]">data_ptr()</Item>

        <ArrayItems>
            <Size>len()</Size>
            <ValuePointer>data_ptr()</ValuePointer>
        </ArrayItems>
    </Expand>
  </Type>

  <Type Name="smallvec::SmallVec&lt;array$&lt;*,*&gt;&gt;" Priority="MediumLow">
    <Intrinsic Name="is_inline" Expression="$T2 &gt;= capacity" />
    <Intrinsic Name="len" Expression="is_inline() ? capacity : data.heap.__1" />
    <Intrinsic Name="data_ptr" Expression="is_inline() ? data.inline.value.value.value : data.heap.__0.pointer" />
    <DisplayString>{{ len={len()} is_inline={is_inline()} }}</DisplayString>
    <Expand>
        <Item Name="[capacity]">is_inline() ? $T2 : capacity</Item>
        <Item Name="[len]">len()</Item>

        <ArrayItems>
            <Size>len()</Size>
            <ValuePointer>data_ptr()</ValuePointer>
        </ArrayItems>
    </Expand>
  </Type>
</AutoVisualizer>