url.natvis 2.3 KB

12345678910111213141516171819202122232425262728293031323334
  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.tag != 0">
  15. <DisplayString>{(char*)(ptr()+host_start),[host_end-host_start]s8}</DisplayString>
  16. </Synthetic>
  17. <Synthetic Name="[port]" Condition="port.tag == 1">
  18. <DisplayString>{port.variant1.value.__0,d}</DisplayString>
  19. </Synthetic>
  20. <Synthetic Name="[path]">
  21. <DisplayString Condition="query_start.tag == 0 &amp;&amp; fragment_start.tag == 0">{(char*)(ptr()+path_start),[(serialization.vec.len-path_start)]s8}</DisplayString>
  22. <DisplayString Condition="query_start.tag == 1">{(char*)(ptr()+path_start),[(query_start.variant1.value.__0-path_start)]s8}</DisplayString>
  23. <DisplayString Condition="fragment_start.tag == 1">{(char*)(ptr()+path_start),[(fragment_start.variant1.value.__0-path_start)]s8}</DisplayString>
  24. </Synthetic>
  25. <Synthetic Name="[query]" Condition="query_start.tag == 1">
  26. <DisplayString Condition="fragment_start.tag == 0">{(char*)(ptr()+query_start.variant1.value.__0+1),[((serialization.vec.len)-(query_start.variant1.value.__0+1))]s8}</DisplayString>
  27. <DisplayString Condition="fragment_start.tag == 1">{(char*)(ptr()+query_start.variant1.value.__0+1),[((fragment_start.variant1.value.__0)-(query_start.variant1.value.__0+1))]s8}</DisplayString>
  28. </Synthetic>
  29. <Synthetic Name="[fragment]" Condition="fragment_start.tag == 1">
  30. <DisplayString>{(char*)(ptr()+fragment_start.variant1.value.__0+1),[(serialization.vec.len-fragment_start.variant1.value.__0-1)]s8}</DisplayString>
  31. </Synthetic>
  32. </Expand>
  33. </Type>
  34. </AutoVisualizer>