Files
jeanlemotan 8297b0b45f First
2024-07-02 18:06:33 +02:00

93 lines
5.1 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
<!-- VS 2015 -->
<!-- TL STRINGS -->
<Type Name="tl::string">
<DisplayString Condition="m_cell==nullptr">empty</DisplayString>
<DisplayString Condition="m_cell!=nullptr">{((char*)(m_cell + 1))}</DisplayString>
<StringView>((char*)(m_cell + 1))</StringView>
</Type>
<!-- TL PATH -->
<Type Name="tl::path">
<DisplayString>{m_elements}</DisplayString>
<Expand>
<Item Name="[size]">m_elements._Mylast - m_elements._Myfirst</Item>
<ArrayItems>
<Size>m_elements._Mylast - m_elements._Myfirst</Size>
<ValuePointer>m_elements._Myfirst</ValuePointer>
</ArrayItems>
</Expand>
</Type>
<Type Name="tl::abs_path&lt;*&gt;">
<DisplayString Condition="(m_elements.mpEnd - m_elements.mpBegin) > 4">/{(char*)(m_elements.mpBegin[0].m_cell+1)}/{(char*)(m_elements.mpBegin[1].m_cell+1)}/.../{(char*)(m_elements.mpEnd[-3].m_cell+1)}/{(char*)(m_elements.mpEnd[-2].m_cell+1)}/{(char*)(m_elements.mpEnd[-1].m_cell+1)}</DisplayString>
<DisplayString Condition="(m_elements.mpEnd - m_elements.mpBegin) == 4">/{(char*)(m_elements.mpBegin[0].m_cell+1)}/{(char*)(m_elements.mpBegin[1].m_cell+1)}/{(char*)(m_elements.mpBegin[2].m_cell+1)}/{(char*)(m_elements.mpBegin[3].m_cell+1)}</DisplayString>
<DisplayString Condition="(m_elements.mpEnd - m_elements.mpBegin) == 3">/{(char*)(m_elements.mpBegin[0].m_cell+1)}/{(char*)(m_elements.mpBegin[1].m_cell+1)}/{(char*)(m_elements.mpBegin[2].m_cell+1)}</DisplayString>
<DisplayString Condition="(m_elements.mpEnd - m_elements.mpBegin) == 2">/{(char*)(m_elements.mpBegin[0].m_cell+1)}/{(char*)(m_elements.mpBegin[1].m_cell+1)}</DisplayString>
<DisplayString Condition="(m_elements.mpEnd - m_elements.mpBegin) == 1">/{(char*)(m_elements.mpBegin[0].m_cell+1)}</DisplayString>
<DisplayString>empty</DisplayString>
<Expand>
<Item Name="[size]">m_elements.mpEnd - m_elements.mpBegin</Item>
<ArrayItems>
<Size>m_elements.mpEnd - m_elements.mpBegin</Size>
<ValuePointer>m_elements.mpBegin</ValuePointer>
</ArrayItems>
</Expand>
</Type>
<Type Name="tl::rel_path&lt;*&gt;">
<DisplayString Condition="(m_elements.mpEnd - m_elements.mpBegin) > 4">{(char*)(m_elements.mpBegin[0].m_cell+1)}/{(char*)(m_elements.mpBegin[1].m_cell+1)}/.../{(char*)(m_elements.mpEnd[-3].m_cell+1)}/{(char*)(m_elements.mpEnd[-2].m_cell+1)}/{(char*)(m_elements.mpEnd[-1].m_cell+1)}</DisplayString>
<DisplayString Condition="(m_elements.mpEnd - m_elements.mpBegin) == 4">{(char*)(m_elements.mpBegin[0].m_cell+1)}/{(char*)(m_elements.mpBegin[1].m_cell+1)}/{(char*)(m_elements.mpBegin[2].m_cell+1)}/{(char*)(m_elements.mpBegin[3].m_cell+1)}</DisplayString>
<DisplayString Condition="(m_elements.mpEnd - m_elements.mpBegin) == 3">{(char*)(m_elements.mpBegin[0].m_cell+1)}/{(char*)(m_elements.mpBegin[1].m_cell+1)}/{(char*)(m_elements.mpBegin[2].m_cell+1)}</DisplayString>
<DisplayString Condition="(m_elements.mpEnd - m_elements.mpBegin) == 2">{(char*)(m_elements.mpBegin[0].m_cell+1)}/{(char*)(m_elements.mpBegin[1].m_cell+1)}</DisplayString>
<DisplayString Condition="(m_elements.mpEnd - m_elements.mpBegin) == 1">{(char*)(m_elements.mpBegin[0].m_cell+1)}</DisplayString>
<DisplayString>empty</DisplayString>
<Expand>
<Item Name="[size]">m_elements.mpEnd - m_elements.mpBegin</Item>
<ArrayItems>
<Size>m_elements.mpEnd - m_elements.mpBegin</Size>
<ValuePointer>m_elements.mpBegin</ValuePointer>
</ArrayItems>
</Expand>
</Type>
<!-- TL IDENTIFIER -->
<Type Name="tl::identifier&lt;*&gt;">
<DisplayString>id {m_value}</DisplayString>
</Type>
<!-- TL ERROR -->
<Type Name="tl::error&lt;*&gt;">
<DisplayString>code: {code}, description: {what}</DisplayString>
</Type>
<!-- SMART POINTERS -->
<Type Name="tl::unique_ptr&lt;*&gt;">
<AlternativeType Name="tl::unique_ref&lt;*&gt;"></AlternativeType>
<AlternativeType Name="tl::intrusive_ptr&lt;*&gt;"></AlternativeType>
<AlternativeType Name="tl::lent_ptr&lt;*&gt;"></AlternativeType>
<AlternativeType Name="tl::lent_ref&lt;*&gt;"></AlternativeType>
<AlternativeType Name="tl::intrusive_ref&lt;*&gt;"></AlternativeType>
<DisplayString Condition="m_ptr==nullptr">empty</DisplayString>
<DisplayString Condition="m_ptr!=nullptr">value: {*m_ptr}</DisplayString>
<Expand>
<Item Name="value" Condition="m_ptr!=nullptr">*m_ptr</Item>
</Expand>
</Type>
<!-- MEMORY BUFFER -->
<Type Name="tl::memory_buffer">
<Expand>
<Item Name="[size]">*(uint32_t*)(m_buf)</Item>
<Item Name="[capacity]">*(uint32_t*)(m_buf + 4)</Item>
<ArrayItems>
<Size>*(uint8_t*)(m_buf)</Size>
<ValuePointer>(m_buf + 8)</ValuePointer>
</ArrayItems>
</Expand>
</Type>
<!-- CHAR BUFFER -->
<Type Name="tl::char_buffer">
<DisplayString>{(m_buf + 8)}</DisplayString>
<StringView>(m_buf + 8)</StringView>
<Expand>
<Item Name="[size]">*(uint32_t*)(m_buf)</Item>
<Item Name="[capacity]">*(uint32_t*)(m_buf + 4)</Item>
</Expand>
</Type>
</AutoVisualizer>