--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
+ <Type Name="collections::vec::Vec<*>">
+ <DisplayString>{{ size={len} }}</DisplayString>
+ <Expand>
+ <Item Name="[size]" ExcludeView="simple">len</Item>
+ <Item Name="[capacity]" ExcludeView="simple">buf.cap</Item>
+ <ArrayItems>
+ <Size>len</Size>
+ <ValuePointer>buf.ptr.pointer.__0</ValuePointer>
+ </ArrayItems>
+ </Expand>
+ </Type>
+ <Type Name="collections::vec_deque::VecDeque<*>">
+ <DisplayString>{{ size={tail <= head ? head - tail : buf.cap - tail + head} }}</DisplayString>
+ <Expand>
+ <Item Name="[size]" ExcludeView="simple">tail <= head ? head - tail : buf.cap - tail + head</Item>
+ <Item Name="[capacity]" ExcludeView="simple">buf.cap</Item>
+ <CustomListItems>
+ <Variable Name="i" InitialValue="tail" />
+
+ <Size>tail <= head ? head - tail : buf.cap - tail + head</Size>
+ <Loop>
+ <If Condition="i == head">
+ <Break/>
+ </If>
+ <Item>buf.ptr.pointer.__0 + i</Item>
+ <Exec>i = (i + 1 == buf.cap ? 0 : i + 1)</Exec>
+ </Loop>
+ </CustomListItems>
+ </Expand>
+ </Type>
+ <Type Name="collections::linked_list::LinkedList<*>">
+ <DisplayString>{{ size={len} }}</DisplayString>
+ <Expand>
+ <LinkedListItems>
+ <Size>len</Size>
+ <HeadPointer>*(collections::linked_list::Node<$T1> **)&head</HeadPointer>
+ <NextPointer>*(collections::linked_list::Node<$T1> **)&next</NextPointer>
+ <ValueNode>element</ValueNode>
+ </LinkedListItems>
+ </Expand>
+ </Type>
+ <Type Name="collections::string::String">
+ <DisplayString>{*(char**)this,[vec.len]}</DisplayString>
+ <StringView>*(char**)this,[vec.len]</StringView>
+ <Expand>
+ <Item Name="[size]" ExcludeView="simple">vec.len</Item>
+ <Item Name="[capacity]" ExcludeView="simple">vec.buf.cap</Item>
+ <ArrayItems>
+ <Size>vec.len</Size>
+ <ValuePointer>*(char**)this</ValuePointer>
+ </ArrayItems>
+ </Expand>
+ </Type>
+</AutoVisualizer>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
+ <Type Name="core::ptr::Unique<*>">
+ <DisplayString>{{ Unique {*pointer.__0} }}</DisplayString>
+ <Expand>
+ <Item Name="[ptr]">pointer.__0</Item>
+ </Expand>
+ </Type>
+ <Type Name="core::ptr::Shared<*>">
+ <DisplayString>{{ Shared {*pointer.__0} }}</DisplayString>
+ <Expand>
+ <Item Name="[ptr]">pointer.__0</Item>
+ </Expand>
+ </Type>
+ <Type Name="core::option::Option<*>">
+ <DisplayString Condition="RUST$ENUM$DISR == 0x0">{{ None }}</DisplayString>
+ <DisplayString Condition="RUST$ENUM$DISR == 0x1">{{ Some {__0} }}</DisplayString>
+ <Expand>
+ <Item Name="[size]" ExcludeView="simple">(ULONG)(RUST$ENUM$DISR != 0)</Item>
+ <Item Name="[value]" ExcludeView="simple">__0</Item>
+ <ArrayItems>
+ <Size>(ULONG)(RUST$ENUM$DISR != 0)</Size>
+ <ValuePointer>&__0</ValuePointer>
+ </ArrayItems>
+ </Expand>
+ </Type>
+ <Type Name="core::option::Option<*>" Priority="MediumLow">
+ <DisplayString Condition="*(PVOID *)this == nullptr">{{ None }}</DisplayString>
+ <DisplayString>{{ Some {($T1 *)this} }}</DisplayString>
+ <Expand>
+ <Item Name="[size]" ExcludeView="simple">(ULONG)(*(PVOID *)this != nullptr)</Item>
+ <Item Name="[value]" ExcludeView="simple" Condition="*(PVOID *)this != nullptr">($T1 *)this</Item>
+ <ArrayItems>
+ <Size>(ULONG)(*(PVOID *)this != nullptr)</Size>
+ <ValuePointer>($T1 *)this</ValuePointer>
+ </ArrayItems>
+ </Expand>
+ </Type>
+</AutoVisualizer>
\ No newline at end of file