| <?xml version="1.0" encoding="utf-8"?> |
| <!-- |
| This will make GitHub and some editors recognize this code as XML: |
| vim: syntax=xml |
| --> |
| <AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010"> |
| <!-- These types are from the gsl_assert header. --> |
| <Type Name="gsl::fail_fast"> |
| <!-- na hides the address, otherwise it would appear as 0x.... "Message" --> |
| <DisplayString>{_Data._What,nasb}</DisplayString> |
| </Type> |
| |
| <!-- These types are from the gsl_util header. --> |
| <Type Name="gsl::final_act<*>"> |
| <DisplayString>{{ invoke = {invoke_}, action = {f_} }}</DisplayString> |
| <Expand> |
| <Item Name="[invoke]">invoke_</Item> |
| <Item Name="[callback]">f_</Item> |
| </Expand> |
| </Type> |
| |
| <!-- These types are from the span header. --> |
| <!-- This is for dynamic_extent spans. --> |
| <Type Name="gsl::span<*, -1>"> |
| <DisplayString>{{ extent = {storage_.size_} }}</DisplayString> |
| <Expand> |
| <ArrayItems> |
| <Size>storage_.size_</Size> |
| <ValuePointer>storage_.data_</ValuePointer> |
| </ArrayItems> |
| </Expand> |
| </Type> |
| |
| <!-- This works for constexpr size spans. --> |
| <Type Name="gsl::span<*, *>"> |
| <DisplayString>{{ extent = {extent} }}</DisplayString> |
| <Expand> |
| <ArrayItems> |
| <Size>extent</Size> |
| <ValuePointer>storage_.data_</ValuePointer> |
| </ArrayItems> |
| </Expand> |
| </Type> |
| |
| <!-- This is for dynamic_extent string_spans. --> |
| <Type Name="gsl::basic_string_span<*, -1>"> |
| <DisplayString>{span_.storage_.data_,[span_.storage_.size_]na}</DisplayString> |
| <Expand> |
| <Item Name="[size]">span_.storage_.size_</Item> |
| <ArrayItems> |
| <Size>span_.storage_.size_</Size> |
| <ValuePointer>span_.storage_.data_</ValuePointer> |
| </ArrayItems> |
| </Expand> |
| </Type> |
| |
| <!-- This works for constexpr size string_spans. --> |
| <Type Name="gsl::basic_string_span<*, *>"> |
| <DisplayString>{span_.storage_.data_,[span_.extent]na}</DisplayString> |
| <Expand> |
| <Item Name="[size]">span_.extent</Item> |
| <ArrayItems> |
| <Size>span_.extent</Size> |
| <ValuePointer>span_.storage_.data_</ValuePointer> |
| </ArrayItems> |
| </Expand> |
| </Type> |
| |
| <!-- This is for dynamic_extent zstring_spans. --> |
| <Type Name="gsl::basic_zstring_span<*, -1>"> |
| <DisplayString>{span_.storage_.data_,[span_.storage_.size_]na}</DisplayString> |
| <Expand> |
| <Item Name="[size]">span_.storage_.size_</Item> |
| <ArrayItems> |
| <Size>span_.storage_.size_</Size> |
| <ValuePointer>span_.storage_.data_</ValuePointer> |
| </ArrayItems> |
| </Expand> |
| </Type> |
| |
| <!-- This works for constexpr size string_spans. --> |
| <Type Name="gsl::basic_zstring_span<*, *>"> |
| <DisplayString>{span_.storage_.data_,[span_.extent]na}</DisplayString> |
| <Expand> |
| <Item Name="[size]">span_.extent</Item> |
| <ArrayItems> |
| <Size>span_.extent</Size> |
| <ValuePointer>span_.storage_.data_</ValuePointer> |
| </ArrayItems> |
| </Expand> |
| </Type> |
| |
| <!-- These types are from the gsl header. --> |
| <Type Name="gsl::not_null<*>"> |
| <!-- We can always dereference this since it's an invariant. --> |
| <DisplayString>value = {*ptr_}</DisplayString> |
| </Type> |
| </AutoVisualizer> |