File: tsl_robin_map.natvis

package info (click to toggle)
robin-map 0.5.0-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster, sid
  • size: 396 kB
  • sloc: cpp: 2,673; makefile: 10
file content (78 lines) | stat: -rw-r--r-- 4,573 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
    <!-- Written in VC 2017 15.7 but is expected to be compatible with VC 2015 -->

    <!-- Visualization that shows the index in the name column and the key-value pair in the value column -->
    <Type Name="tsl::robin_map&lt;*&gt;" Priority="Medium">
        <AlternativeType Name="tsl::robin_set&lt;*&gt;"/>
        <DisplayString>{{ size={m_ht.m_nb_elements} }}</DisplayString>
        <Expand>
            <Item Name="[bucket_count]" IncludeView="detailed">m_ht.m_buckets._Mypair._Myval2._Mylast - m_ht.m_buckets._Mypair._Myval2._Myfirst</Item>
            <Item Name="[load_factor]" Condition="m_ht.m_buckets._Mypair._Myval2._Myfirst != m_ht.m_buckets._Mypair._Myval2._Mylast" IncludeView="detailed">
                ((float)m_ht.m_nb_elements) / ((float)(m_ht.m_buckets._Mypair._Myval2._Mylast - m_ht.m_buckets._Mypair._Myval2._Myfirst))
            </Item>
            <Item Name="[load_factor]" Condition="m_ht.m_buckets._Mypair._Myval2._Myfirst == m_ht.m_buckets._Mypair._Myval2._Mylast" IncludeView="detailed">
                0
            </Item>
            <Item Name="[max_load_factor]" IncludeView="detailed">m_ht.m_max_load_factor</Item>
            <CustomListItems>
                <Variable Name="bucket" InitialValue="m_ht.m_first_or_empty_bucket"/>

                <Size>m_ht.m_nb_elements</Size>
                <Loop>
                    <Item Condition="bucket-&gt;m_dist_from_ideal_bucket != -1">*bucket</Item>
                    <Break Condition="bucket-&gt;m_last_bucket"/>
                    <Exec>++bucket</Exec>
                </Loop>
            </CustomListItems>
        </Expand>
    </Type>

    <!-- Visualization that shows the key in the name column and the key-value pair in the value column -->
    <Type Name="tsl::robin_map&lt;*&gt;" ExcludeView="ShowElementsByIndex" Priority="MediumHigh">
        <DisplayString>{{ size={m_ht.m_nb_elements} }}</DisplayString>
        <Expand>
            <Item Name="[bucket_count]" IncludeView="detailed">m_ht.m_buckets._Mypair._Myval2._Mylast - m_ht.m_buckets._Mypair._Myval2._Myfirst</Item>
            <Item Name="[load_factor]" Condition="m_ht.m_buckets._Mypair._Myval2._Myfirst != m_ht.m_buckets._Mypair._Myval2._Mylast" IncludeView="detailed">
                ((float)m_ht.m_nb_elements) / ((float)(m_ht.m_buckets._Mypair._Myval2._Mylast - m_ht.m_buckets._Mypair._Myval2._Myfirst))
            </Item>
            <Item Name="[load_factor]" Condition="m_ht.m_buckets._Mypair._Myval2._Myfirst == m_ht.m_buckets._Mypair._Myval2._Mylast" IncludeView="detailed">
                0
            </Item>
            <Item Name="[max_load_factor]" IncludeView="detailed">m_ht.m_max_load_factor</Item>
            <CustomListItems>
                <Variable Name="bucket" InitialValue="m_ht.m_first_or_empty_bucket"/>

                <Size>m_ht.m_nb_elements</Size>
                <Loop>
                    <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>
                    <Break Condition="bucket-&gt;m_last_bucket"/>
                    <Exec>++bucket</Exec>
                </Loop>
            </CustomListItems>
        </Expand>
    </Type>

    <Type Name="tsl::detail_robin_hash::robin_hash&lt;*&gt;::robin_iterator&lt;*&gt;">
        <DisplayString>{m_iterator}</DisplayString>
        <Expand>
            <ExpandedItem>m_iterator</ExpandedItem>
        </Expand>
    </Type>

    <Type Name="tsl::detail_robin_hash::bucket_entry&lt;*&gt;">
        <DisplayString Condition="m_dist_from_ideal_bucket == -1">empty</DisplayString>
        <DisplayString Condition="m_dist_from_ideal_bucket != -1">{*reinterpret_cast&lt;$T1*&gt;(&amp;m_value)}</DisplayString>
        <Expand>
            <ExpandedItem Condition="m_dist_from_ideal_bucket != -1">*reinterpret_cast&lt;$T1*&gt;(&amp;m_value)</ExpandedItem>
        </Expand>
    </Type>

    <Type Name="tsl::detail_robin_hash::bucket_entry&lt;*&gt;" IncludeView="MapHelper">
        <DisplayString Condition="m_dist_from_ideal_bucket == -1">empty</DisplayString>
        <DisplayString Condition="m_dist_from_ideal_bucket != -1">{reinterpret_cast&lt;$T1*&gt;(&amp;m_value)->second}</DisplayString>
        <Expand>
            <ExpandedItem Condition="m_dist_from_ideal_bucket != -1">*reinterpret_cast&lt;$T1*&gt;(&amp;m_value)</ExpandedItem>
        </Expand>
    </Type>
</AutoVisualizer>