/ externals / robin-map / tsl-robin-map.natvis
tsl-robin-map.natvis
 1  <?xml version="1.0" encoding="utf-8"?>
 2  <AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
 3      <!-- Written in VC 2017 15.7 but is expected to be compatible with VC 2015 -->
 4  
 5      <!-- Visualization that shows the index in the name column and the key-value pair in the value column -->
 6      <Type Name="tsl::robin_map&lt;*&gt;" Priority="Medium">
 7          <AlternativeType Name="tsl::robin_set&lt;*&gt;"/>
 8          <DisplayString>{{ size={m_ht.m_nb_elements} }}</DisplayString>
 9          <Expand>
10              <Item Name="[bucket_count]" IncludeView="detailed">m_ht.m_buckets_data._Mypair._Myval2._Mylast - m_ht.m_buckets_data._Mypair._Myval2._Myfirst</Item>
11              <Item Name="[load_factor]" Condition="m_ht.m_buckets_data._Mypair._Myval2._Myfirst != m_ht.m_buckets_data._Mypair._Myval2._Mylast" IncludeView="detailed">
12                  ((float)m_ht.m_nb_elements) / ((float)(m_ht.m_buckets_data._Mypair._Myval2._Mylast - m_ht.m_buckets_data._Mypair._Myval2._Myfirst))
13              </Item>
14              <Item Name="[load_factor]" Condition="m_ht.m_buckets_data._Mypair._Myval2._Myfirst == m_ht.m_buckets_data._Mypair._Myval2._Mylast" IncludeView="detailed">
15                  0
16              </Item>
17              <Item Name="[max_load_factor]" IncludeView="detailed">m_ht.m_max_load_factor</Item>
18              <CustomListItems>
19                  <Variable Name="bucket" InitialValue="m_ht.m_buckets"/>
20  
21                  <Size>m_ht.m_nb_elements</Size>
22                  <Loop>
23                      <Item Condition="bucket-&gt;m_dist_from_ideal_bucket != -1">*bucket</Item>
24                      <Break Condition="bucket-&gt;m_last_bucket"/>
25                      <Exec>++bucket</Exec>
26                  </Loop>
27              </CustomListItems>
28          </Expand>
29      </Type>
30  
31      <!-- Visualization that shows the key in the name column and the key-value pair in the value column -->
32      <Type Name="tsl::robin_map&lt;*&gt;" ExcludeView="ShowElementsByIndex" Priority="MediumHigh">
33          <DisplayString>{{ size={m_ht.m_nb_elements} }}</DisplayString>
34          <Expand>
35              <Item Name="[bucket_count]" IncludeView="detailed">m_ht.m_buckets_data._Mypair._Myval2._Mylast - m_ht.m_buckets_data._Mypair._Myval2._Myfirst</Item>
36              <Item Name="[load_factor]" Condition="m_ht.m_buckets_data._Mypair._Myval2._Myfirst != m_ht.m_buckets_data._Mypair._Myval2._Mylast" IncludeView="detailed">
37                  ((float)m_ht.m_nb_elements) / ((float)(m_ht.m_buckets_data._Mypair._Myval2._Mylast - m_ht.m_buckets_data._Mypair._Myval2._Myfirst))
38              </Item>
39              <Item Name="[load_factor]" Condition="m_ht.m_buckets_data._Mypair._Myval2._Myfirst == m_ht.m_buckets_data._Mypair._Myval2._Mylast" IncludeView="detailed">
40                  0
41              </Item>
42              <Item Name="[max_load_factor]" IncludeView="detailed">m_ht.m_max_load_factor</Item>
43              <CustomListItems>
44                  <Variable Name="bucket" InitialValue="m_ht.m_buckets"/>
45  
46                  <Size>m_ht.m_nb_elements</Size>
47                  <Loop>
48                      <Item Condition="bucket-&gt;m_dist_from_ideal_bucket != -1" Name="[{reinterpret_cast&lt;std::pair&lt;$T1,$T2&gt;*&gt;(&amp;bucket->m_value)->first}]">*bucket</Item>
49                      <Break Condition="bucket-&gt;m_last_bucket"/>
50                      <Exec>++bucket</Exec>
51                  </Loop>
52              </CustomListItems>
53          </Expand>
54      </Type>
55  
56      <Type Name="tsl::detail_robin_hash::robin_hash&lt;*&gt;::robin_iterator&lt;*&gt;">
57          <DisplayString>{*m_bucket}</DisplayString>
58          <Expand>
59              <ExpandedItem>*m_bucket</ExpandedItem>
60          </Expand>
61      </Type>
62  
63      <Type Name="tsl::detail_robin_hash::bucket_entry&lt;*&gt;">
64          <DisplayString Condition="m_dist_from_ideal_bucket == -1">empty</DisplayString>
65          <DisplayString Condition="m_dist_from_ideal_bucket != -1">{*reinterpret_cast&lt;$T1*&gt;(&amp;m_value)}</DisplayString>
66          <Expand>
67              <ExpandedItem Condition="m_dist_from_ideal_bucket != -1">*reinterpret_cast&lt;$T1*&gt;(&amp;m_value)</ExpandedItem>
68          </Expand>
69      </Type>
70  
71      <Type Name="tsl::detail_robin_hash::bucket_entry&lt;*&gt;" IncludeView="MapHelper">
72          <DisplayString Condition="m_dist_from_ideal_bucket == -1">empty</DisplayString>
73          <DisplayString Condition="m_dist_from_ideal_bucket != -1">{reinterpret_cast&lt;$T1*&gt;(&amp;m_value)->second}</DisplayString>
74          <Expand>
75              <ExpandedItem Condition="m_dist_from_ideal_bucket != -1">*reinterpret_cast&lt;$T1*&gt;(&amp;m_value)</ExpandedItem>
76          </Expand>
77      </Type>
78  </AutoVisualizer>