1
- <?xml version =" 1.0" encoding =" utf-8" ?>
2
- <AutoVisualizer xmlns =" http://schemas.microsoft.com/vstudio/debugger/natvis/2010" >
3
- <Type Name =" url::Url" >
4
- <Intrinsic Name =" ptr" Expression =" serialization.vec.buf.ptr.pointer.pointer" />
5
- <DisplayString >{serialization}</DisplayString >
6
- <Expand >
7
- <Synthetic Name =" [scheme]" >
8
- <DisplayString >{(char*)(ptr()),[scheme_end]s8}</DisplayString >
9
- </Synthetic >
10
- <Synthetic Name =" [username]" Condition =" username_end > (scheme_end + 3)" >
11
- <!-- Add 3 to the scheme end to account for the scheme separator which is '://' -->
12
- <DisplayString >{(char*)(ptr()+(scheme_end + 3)),[((username_end)-(scheme_end + 3))]s8}</DisplayString >
13
- </Synthetic >
14
- <Synthetic Name =" [host]" Condition =" host.discriminant != 0" >
15
- <DisplayString >{(char*)(ptr()+host_start),[host_end-host_start]s8}</DisplayString >
16
- </Synthetic >
17
- <Synthetic Name =" [port]" Condition =" port.discriminant == 1" >
18
- <DisplayString >{port.variant1.__0,d}</DisplayString >
19
- </Synthetic >
20
- <Synthetic Name =" [path]" >
21
- <DisplayString Condition =" query_start.discriminant == 0 && fragment_start.discriminant == 0" >{(char*)(ptr()+path_start),[(serialization.vec.len-path_start)]s8}</DisplayString >
22
- <DisplayString Condition =" query_start.discriminant == 1" >{(char*)(ptr()+path_start),[(query_start.variant1.__0-path_start)]s8}</DisplayString >
23
- <DisplayString Condition =" fragment_start.discriminant == 1" >{(char*)(ptr()+path_start),[(fragment_start.variant1.__0-path_start)]s8}</DisplayString >
24
- </Synthetic >
25
- <Synthetic Name =" [query]" Condition =" query_start.discriminant == 1" >
26
- <DisplayString Condition =" fragment_start.discriminant == 0" >{(char*)(ptr()+query_start.variant1.__0+1),[((serialization.vec.len)-(query_start.variant1.__0+1))]s8}</DisplayString >
27
- <DisplayString Condition =" fragment_start.discriminant == 1" >{(char*)(ptr()+query_start.variant1.__0+1),[((fragment_start.variant1.__0)-(query_start.variant1.__0+1))]s8}</DisplayString >
28
- </Synthetic >
29
- <Synthetic Name =" [fragment]" Condition =" fragment_start.discriminant == 1" >
30
- <DisplayString >{(char*)(ptr()+fragment_start.variant1.__0+1),[(serialization.vec.len-fragment_start.variant1.__0-1)]s8}</DisplayString >
31
- </Synthetic >
32
- </Expand >
33
- </Type >
34
- </AutoVisualizer >
1
+ <?xml version =" 1.0" encoding =" utf-8" ?>
2
+ <AutoVisualizer xmlns =" http://schemas.microsoft.com/vstudio/debugger/natvis/2010" >
3
+ <Type Name =" url::Url" >
4
+ <Intrinsic Name =" ptr" Expression =" serialization.vec.buf.ptr.pointer.pointer" />
5
+ <DisplayString >{serialization}</DisplayString >
6
+ <Expand >
7
+ <Synthetic Name =" [scheme]" >
8
+ <DisplayString >{(char*)(ptr()),[scheme_end]s8}</DisplayString >
9
+ </Synthetic >
10
+ <Synthetic Name =" [username]" Condition =" username_end > (scheme_end + 3)" >
11
+ <!-- Add 3 to the scheme end to account for the scheme separator which is '://' -->
12
+ <DisplayString >{(char*)(ptr()+(scheme_end + 3)),[((username_end)-(scheme_end + 3))]s8}</DisplayString >
13
+ </Synthetic >
14
+ <Synthetic Name =" [host]" Condition =" host.discriminant != 0" >
15
+ <DisplayString >{(char*)(ptr()+host_start),[host_end-host_start]s8}</DisplayString >
16
+ </Synthetic >
17
+ <Synthetic Name =" [port]" Condition =" port.discriminant == 1" >
18
+ <DisplayString >{port.variant1.__0,d}</DisplayString >
19
+ </Synthetic >
20
+ <Synthetic Name =" [path]" >
21
+ <DisplayString Condition =" query_start.discriminant == 0 && fragment_start.discriminant == 0" >{(char*)(ptr()+path_start),[(serialization.vec.len-path_start)]s8}</DisplayString >
22
+ <DisplayString Condition =" query_start.discriminant == 1" >{(char*)(ptr()+path_start),[(query_start.variant1.__0-path_start)]s8}</DisplayString >
23
+ <DisplayString Condition =" fragment_start.discriminant == 1" >{(char*)(ptr()+path_start),[(fragment_start.variant1.__0-path_start)]s8}</DisplayString >
24
+ </Synthetic >
25
+ <Synthetic Name =" [query]" Condition =" query_start.discriminant == 1" >
26
+ <DisplayString Condition =" fragment_start.discriminant == 0" >{(char*)(ptr()+query_start.variant1.__0+1),[((serialization.vec.len)-(query_start.variant1.__0+1))]s8}</DisplayString >
27
+ <DisplayString Condition =" fragment_start.discriminant == 1" >{(char*)(ptr()+query_start.variant1.__0+1),[((fragment_start.variant1.__0)-(query_start.variant1.__0+1))]s8}</DisplayString >
28
+ </Synthetic >
29
+ <Synthetic Name =" [fragment]" Condition =" fragment_start.discriminant == 1" >
30
+ <DisplayString >{(char*)(ptr()+fragment_start.variant1.__0+1),[(serialization.vec.len-fragment_start.variant1.__0-1)]s8}</DisplayString >
31
+ </Synthetic >
32
+ </Expand >
33
+ </Type >
34
+ </AutoVisualizer >
0 commit comments