]> git.lizzy.rs Git - rust.git/blob - src/etc/natvis/intrinsic.natvis
feat(rustdoc): open sidebar menu when links inside it are focused
[rust.git] / src / etc / natvis / intrinsic.natvis
1 <?xml version="1.0" encoding="utf-8"?>
2 <AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
3   <Type Name="str">
4     <DisplayString>{data_ptr,[length]s8}</DisplayString>
5     <StringView>data_ptr,[length]s8</StringView>
6     <Expand>
7       <Item Name="[len]" ExcludeView="simple">length</Item>
8       <Synthetic Name="[chars]">
9         <Expand>
10           <ArrayItems>
11             <Size>length</Size>
12             <ValuePointer>data_ptr</ValuePointer>
13           </ArrayItems>
14         </Expand>
15       </Synthetic>
16     </Expand>
17   </Type>
18   <Type Name="slice$&lt;*&gt;">
19     <DisplayString>{{ len={length} }}</DisplayString>
20     <Expand>
21       <Item Name="[len]" ExcludeView="simple">length</Item>
22       <ArrayItems>
23         <Size>length</Size>
24         <ValuePointer>data_ptr</ValuePointer>
25       </ArrayItems>
26     </Expand>
27   </Type>
28   <Type Name="tuple$&lt;&gt;">
29     <DisplayString>()</DisplayString>
30   </Type>
31   <Type Name="tuple$&lt;*&gt;">
32     <DisplayString>({__0})</DisplayString>
33     <Expand>
34       <Item Name="[0]">__0</Item>
35     </Expand>
36   </Type>
37   <Type Name="tuple$&lt;*,*&gt;">
38     <DisplayString>({__0}, {__1})</DisplayString>
39     <Expand>
40       <Item Name="[0]">__0</Item>
41       <Item Name="[1]">__1</Item>
42     </Expand>
43   </Type>
44   <Type Name="tuple$&lt;*,*,*&gt;">
45     <DisplayString>({__0}, {__1}, {__2})</DisplayString>
46     <Expand>
47       <Item Name="[0]">__0</Item>
48       <Item Name="[1]">__1</Item>
49       <Item Name="[2]">__2</Item>
50     </Expand>
51   </Type>
52   <Type Name="tuple$&lt;*,*,*,*&gt;">
53     <DisplayString>({__0}, {__1}, {__2}, {__3})</DisplayString>
54     <Expand>
55       <Item Name="[0]">__0</Item>
56       <Item Name="[1]">__1</Item>
57       <Item Name="[2]">__2</Item>
58       <Item Name="[3]">__3</Item>
59     </Expand>
60   </Type>
61   <Type Name="tuple$&lt;*,*,*,*,*&gt;">
62     <DisplayString>({__0}, {__1}, {__2}, {__3}, {__4})</DisplayString>
63     <Expand>
64       <Item Name="[0]">__0</Item>
65       <Item Name="[1]">__1</Item>
66       <Item Name="[2]">__2</Item>
67       <Item Name="[3]">__3</Item>
68       <Item Name="[4]">__4</Item>
69     </Expand>
70   </Type>
71   <Type Name="tuple$&lt;*,*,*,*,*,*&gt;">
72     <DisplayString>({__0}, {__1}, {__2}, {__3}, {__4}, {__5})</DisplayString>
73     <Expand>
74       <Item Name="[0]">__0</Item>
75       <Item Name="[1]">__1</Item>
76       <Item Name="[2]">__2</Item>
77       <Item Name="[3]">__3</Item>
78       <Item Name="[4]">__4</Item>
79       <Item Name="[5]">__5</Item>
80     </Expand>
81   </Type>
82   <Type Name="tuple$&lt;*,*,*,*,*,*,*&gt;">
83     <DisplayString>({__0}, {__1}, {__2}, {__3}, {__4}, {__5}, {__6})</DisplayString>
84     <Expand>
85       <Item Name="[0]">__0</Item>
86       <Item Name="[1]">__1</Item>
87       <Item Name="[2]">__2</Item>
88       <Item Name="[3]">__3</Item>
89       <Item Name="[4]">__4</Item>
90       <Item Name="[5]">__5</Item>
91       <Item Name="[6]">__6</Item>
92     </Expand>
93   </Type>
94   <Type Name="tuple$&lt;*,*,*,*,*,*,*,*&gt;">
95     <DisplayString>({__0}, {__1}, {__2}, {__3}, {__4}, {__5}, {__6}, {__7})</DisplayString>
96     <Expand>
97       <Item Name="[0]">__0</Item>
98       <Item Name="[1]">__1</Item>
99       <Item Name="[2]">__2</Item>
100       <Item Name="[3]">__3</Item>
101       <Item Name="[4]">__4</Item>
102       <Item Name="[5]">__5</Item>
103       <Item Name="[6]">__6</Item>
104       <Item Name="[7]">__7</Item>
105     </Expand>
106   </Type>
107   <Type Name="tuple$&lt;*,*,*,*,*,*,*,*,*&gt;">
108     <DisplayString>({__0}, {__1}, {__2}, {__3}, {__4}, {__5}, {__6}, {__7}, {__8})</DisplayString>
109     <Expand>
110       <Item Name="[0]">__0</Item>
111       <Item Name="[1]">__1</Item>
112       <Item Name="[2]">__2</Item>
113       <Item Name="[3]">__3</Item>
114       <Item Name="[4]">__4</Item>
115       <Item Name="[5]">__5</Item>
116       <Item Name="[6]">__6</Item>
117       <Item Name="[7]">__7</Item>
118       <Item Name="[8]">__8</Item>
119     </Expand>
120   </Type>
121   <Type Name="tuple$&lt;*,*,*,*,*,*,*,*,*,*&gt;">
122     <DisplayString>({__0}, {__1}, {__2}, {__3}, {__4}, {__5}, {__6}, {__7}, {__8}, {__9})</DisplayString>
123     <Expand>
124       <Item Name="[0]">__0</Item>
125       <Item Name="[1]">__1</Item>
126       <Item Name="[2]">__2</Item>
127       <Item Name="[3]">__3</Item>
128       <Item Name="[4]">__4</Item>
129       <Item Name="[5]">__5</Item>
130       <Item Name="[6]">__6</Item>
131       <Item Name="[7]">__7</Item>
132       <Item Name="[8]">__8</Item>
133       <Item Name="[9]">__9</Item>
134     </Expand>
135   </Type>
136   <Type Name="tuple$&lt;*,*,*,*,*,*,*,*,*,*,*&gt;">
137     <DisplayString>({__0}, {__1}, {__2}, {__3}, {__4}, {__5}, {__6}, {__7}, {__8}, {__9}, ...)</DisplayString>
138     <Expand>
139       <Item Name="[0]">__0</Item>
140       <Item Name="[1]">__1</Item>
141       <Item Name="[2]">__2</Item>
142       <Item Name="[3]">__3</Item>
143       <Item Name="[4]">__4</Item>
144       <Item Name="[5]">__5</Item>
145       <Item Name="[6]">__6</Item>
146       <Item Name="[7]">__7</Item>
147       <Item Name="[8]">__8</Item>
148       <Item Name="[9]">__9</Item>
149       <Synthetic Name="[...]"><DisplayString>...</DisplayString></Synthetic>
150     </Expand>
151   </Type>
152
153   <!-- Directly tagged enums. $T1 is the type name -->
154   <Type Name="enum$&lt;*&gt;">
155     <Intrinsic Name="tag" Expression="discriminant" />
156     <DisplayString Condition="tag() == 0">{tag(),en}</DisplayString>
157     <DisplayString Condition="tag() == 1" Optional="true">{tag(),en}</DisplayString>
158     <DisplayString Condition="tag() == 2" Optional="true">{tag(),en}</DisplayString>
159     <DisplayString Condition="tag() == 3" Optional="true">{tag(),en}</DisplayString>
160     <DisplayString Condition="tag() == 4" Optional="true">{tag(),en}</DisplayString>
161     <DisplayString Condition="tag() == 5" Optional="true">{tag(),en}</DisplayString>
162     <DisplayString Condition="tag() == 6" Optional="true">{tag(),en}</DisplayString>
163     <DisplayString Condition="tag() == 7" Optional="true">{tag(),en}</DisplayString>
164     <DisplayString Condition="tag() == 8" Optional="true">{tag(),en}</DisplayString>
165     <DisplayString Condition="tag() == 9" Optional="true">{tag(),en}</DisplayString>
166     <DisplayString Condition="tag() == 10" Optional="true">{tag(),en}</DisplayString>
167     <DisplayString Condition="tag() == 11" Optional="true">{tag(),en}</DisplayString>
168     <DisplayString Condition="tag() == 12" Optional="true">{tag(),en}</DisplayString>
169     <DisplayString Condition="tag() == 13" Optional="true">{tag(),en}</DisplayString>
170     <DisplayString Condition="tag() == 14" Optional="true">{tag(),en}</DisplayString>
171     <DisplayString Condition="tag() == 15" Optional="true">{tag(),en}</DisplayString>
172
173     <Expand>
174       <Synthetic Name="[variant]">
175         <DisplayString>{tag(),en}</DisplayString>
176       </Synthetic>
177       <ExpandedItem Condition="tag() == 0">variant0</ExpandedItem>
178       <ExpandedItem Condition="tag() == 1" Optional="true">variant1</ExpandedItem>
179       <ExpandedItem Condition="tag() == 2" Optional="true">variant2</ExpandedItem>
180       <ExpandedItem Condition="tag() == 3" Optional="true">variant3</ExpandedItem>
181       <ExpandedItem Condition="tag() == 4" Optional="true">variant4</ExpandedItem>
182       <ExpandedItem Condition="tag() == 5" Optional="true">variant5</ExpandedItem>
183       <ExpandedItem Condition="tag() == 6" Optional="true">variant6</ExpandedItem>
184       <ExpandedItem Condition="tag() == 7" Optional="true">variant7</ExpandedItem>
185       <ExpandedItem Condition="tag() == 8" Optional="true">variant8</ExpandedItem>
186       <ExpandedItem Condition="tag() == 9" Optional="true">variant9</ExpandedItem>
187       <ExpandedItem Condition="tag() == 10" Optional="true">variant10</ExpandedItem>
188       <ExpandedItem Condition="tag() == 11" Optional="true">variant11</ExpandedItem>
189       <ExpandedItem Condition="tag() == 12" Optional="true">variant12</ExpandedItem>
190       <ExpandedItem Condition="tag() == 13" Optional="true">variant13</ExpandedItem>
191       <ExpandedItem Condition="tag() == 14" Optional="true">variant14</ExpandedItem>
192       <ExpandedItem Condition="tag() == 15" Optional="true">variant15</ExpandedItem>
193     </Expand>
194   </Type>
195
196   <!-- Single variant enums. $T1 is the name of the enum, $T2 is the name of the variant -->
197   <Type Name="enum$&lt;*, *&gt;">
198     <DisplayString>{"$T2",sb}</DisplayString>
199     <Expand>
200       <Synthetic Name="[variant]">
201         <DisplayString>{"$T2",sb}</DisplayString>
202       </Synthetic>
203       <ExpandedItem>$T2</ExpandedItem>
204     </Expand>
205   </Type>
206
207   <!-- Niche-layout enums. $T1 is the name of the enum, $T2 is the low value of the dataful
208        variant tag, $T3 is the high value of the dataful variant tag, $T4 is the name of
209        the dataful variant -->
210   <Type Name="enum$&lt;*, *, *, *&gt;">
211     <Intrinsic Name="tag" Expression="discriminant" />
212     <Intrinsic Name="is_dataful" Expression="tag() &gt;= $T2 &amp;&amp; tag() &lt;= $T3" />
213     <DisplayString Condition="is_dataful()">{"$T4",sb}({dataful_variant})</DisplayString>
214     <DisplayString Condition="!is_dataful()">{discriminant,en}</DisplayString>
215     <Expand>
216       <ExpandedItem Condition="is_dataful()">dataful_variant</ExpandedItem>
217       <Synthetic Condition="is_dataful()" Name="[variant]">
218         <DisplayString>{"$T4",sb}</DisplayString>
219       </Synthetic>
220       <Synthetic Condition="!is_dataful()" Name="[variant]">
221         <DisplayString>{discriminant,en}</DisplayString>
222       </Synthetic>
223     </Expand>
224   </Type>
225 </AutoVisualizer>