93 lines
5.1 KiB
XML
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<*>">
|
|
<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<*>">
|
|
<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<*>">
|
|
<DisplayString>id {m_value}</DisplayString>
|
|
</Type>
|
|
<!-- TL ERROR -->
|
|
<Type Name="tl::error<*>">
|
|
<DisplayString>code: {code}, description: {what}</DisplayString>
|
|
</Type>
|
|
<!-- SMART POINTERS -->
|
|
<Type Name="tl::unique_ptr<*>">
|
|
<AlternativeType Name="tl::unique_ref<*>"></AlternativeType>
|
|
<AlternativeType Name="tl::intrusive_ptr<*>"></AlternativeType>
|
|
<AlternativeType Name="tl::lent_ptr<*>"></AlternativeType>
|
|
<AlternativeType Name="tl::lent_ref<*>"></AlternativeType>
|
|
<AlternativeType Name="tl::intrusive_ref<*>"></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>
|