diff options
Diffstat (limited to 'doc/EASTL.natvis')
-rw-r--r-- | doc/EASTL.natvis | 731 |
1 files changed, 0 insertions, 731 deletions
diff --git a/doc/EASTL.natvis b/doc/EASTL.natvis deleted file mode 100644 index c3e94db..0000000 --- a/doc/EASTL.natvis +++ /dev/null @@ -1,731 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> - -<!-- - This is a Microsoft natvis file, which allows visualization of complex variables in the - Microsoft debugger starting with VS2012. It's a successor to the AutoExp.dat file format. - - This file needs to go into your C:\Users\<user>\Documents\Visual Studio 2011\Visualizers\ - folder. Microsoft documentation states that it should go into a 2012 folder, but testing - in June of 2013 suggests that it still needs to be the 2011 folder. - - You don't need to restart Visual Studio to use it, you just need to restart the debug - session. You can have multiple .natvis files and they will all be used. - - VS2017 natvis documentation: - https://docs.microsoft.com/en-us/visualstudio/debugger/create-custom-views-of-native-objects ---> - -<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010"> - -<Type Name="eastl::unique_ptr<*>"> - <DisplayString Condition="mPair.mFirst != nullptr">({(void*)mPair.mFirst} = {*mPair.mFirst})</DisplayString> - <DisplayString Condition="mPair.mFirst == nullptr">({nullptr})</DisplayString> - <Expand> - <Item Name="[pointer]">(void*)mPair.mFirst</Item> - <Item Name="[value]">*mPair.mFirst</Item> - </Expand> -</Type> - -<Type Name="eastl::shared_ptr<*>"> - <DisplayString Condition="mpValue != nullptr">({(void*)mpValue} = {*mpValue})</DisplayString> - <DisplayString Condition="mpValue == nullptr">({nullptr})</DisplayString> - <Expand> - <Item Name="[pointer]">(void*)mpValue</Item> - <Item Name="[value]">*mpValue</Item> - <Item Name="[reference count]">mpRefCount->mRefCount</Item> - <Item Name="[weak reference count]">mpRefCount->mWeakRefCount</Item> - </Expand> -</Type> - -<Type Name="eastl::weak_ptr<*>"> - <DisplayString>{((mpRefCount && mpRefCount->mRefCount) ? mpValue : nullptr)}</DisplayString> - <Expand> - <ExpandedItem>mpRefCount && mpRefCount->mRefCount ? mpValue : nullptr</ExpandedItem> - </Expand> -</Type> - -<Type Name="eastl::array<*,*>"> - <DisplayString Condition="$T2 == 0">[{$T2}] {{}}</DisplayString> - <DisplayString Condition="$T2 == 1">[{$T2}] {{ {*mValue} }}</DisplayString> - <DisplayString Condition="$T2 == 2">[{$T2}] {{ {*mValue}, {*(mValue+1)} }}</DisplayString> - <DisplayString Condition="$T2 == 3">[{$T2}] {{ {*mValue}, {*(mValue+1)}, {*(mValue+2)} }}</DisplayString> - <DisplayString Condition="$T2 == 4">[{$T2}] {{ {*mValue}, {*(mValue+1)}, {*(mValue+2)}, {*(mValue+3)} }}</DisplayString> - <DisplayString Condition="$T2 == 5">[{$T2}] {{ {*mValue}, {*(mValue+1)}, {*(mValue+2)}, {*(mValue+3)}, {*(mValue+4)} }}</DisplayString> - <DisplayString Condition="$T2 == 6">[{$T2}] {{ {*mValue}, {*(mValue+1)}, {*(mValue+2)}, {*(mValue+3)}, {*(mValue+4)}, {*(mValue+5)} }}</DisplayString> - <DisplayString Condition="$T2 > 6">[{$T2}] {{ {*mValue}, {*(mValue+1)}, {*(mValue+2)}, {*(mValue+3)}, {*(mValue+4)}, {*(mValue+5)}, ... }}</DisplayString> - <Expand> - <Item Name="[size]">$T2</Item> - <ArrayItems> - <Size>$T2</Size> - <ValuePointer>mValue</ValuePointer> - </ArrayItems> - </Expand> -</Type> - -<Type Name="eastl::basic_string<*>"> - <DisplayString Condition="!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">"{mPair.mFirst.heap.mpBegin,sb}"</DisplayString> - <DisplayString Condition="!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">"{mPair.mFirst.sso.mData,sb}"</DisplayString> - <Expand> - <Item Name="[length]" Condition="!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">mPair.mFirst.heap.mnSize</Item> - <Item Name="[capacity]" Condition="!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">(mPair.mFirst.heap.mnCapacity & ~kHeapMask)</Item> - <Item Name="[value]" Condition="!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">mPair.mFirst.heap.mpBegin,sb</Item> - - <Item Name="[length]" Condition="!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">(SSOLayout::SSO_CAPACITY - mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize)</Item> - <Item Name="[capacity]" Condition="!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">SSOLayout::SSO_CAPACITY</Item> - <Item Name="[value]" Condition="!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">mPair.mFirst.sso.mData,sb</Item> - - <Item Name="[uses heap]">!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)</Item> - </Expand> -</Type> - - -<Type Name="eastl::basic_string<wchar_t,*>"> - <DisplayString Condition="!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">{mPair.mFirst.heap.mpBegin,su}</DisplayString> - <DisplayString Condition="!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">{mPair.mFirst.sso.mData,su}</DisplayString> - <Expand> - <Item Name="[length]" Condition="!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">mPair.mFirst.heap.mnSize</Item> - <Item Name="[capacity]" Condition="!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">(mPair.mFirst.heap.mnCapacity & ~kHeapMask)</Item> - <Item Name="[value]" Condition="!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">mPair.mFirst.heap.mpBegin,su</Item> - - <Item Name="[length]" Condition="!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">(SSOLayout::SSO_CAPACITY - mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize)</Item> - <Item Name="[capacity]" Condition="!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">SSOLayout::SSO_CAPACITY</Item> - <Item Name="[value]" Condition="!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">mPair.mFirst.sso.mData,su</Item> - - <Item Name="[uses heap]">!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)</Item> - </Expand> -</Type> - -<Type Name="eastl::pair<*>"> - <DisplayString>({first}, {second})</DisplayString> - <Expand> - <Item Name="first">first</Item> - <Item Name="second">second</Item> - </Expand> -</Type> - -<Type Name="eastl::span<*>"> - <DisplayString Condition="mnSize == 0">[{mnSize}] {{}}</DisplayString> - <DisplayString Condition="mnSize == 1">[{mnSize}] {{ {*mpData} }}</DisplayString> - <DisplayString Condition="mnSize == 2">[{mnSize}] {{ {*mpData}, {*(mpData+1)} }}</DisplayString> - <DisplayString Condition="mnSize == 3">[{mnSize}] {{ {*mpData}, {*(mpData+1)}, {*(mpData+2)} }}</DisplayString> - <DisplayString Condition="mnSize == 4">[{mnSize}] {{ {*mpData}, {*(mpData+1)}, {*(mpData+2)}, {*(mpData+3)} }}</DisplayString> - <DisplayString Condition="mnSize == 5">[{mnSize}] {{ {*mpData}, {*(mpData+1)}, {*(mpData+2)}, {*(mpData+3)}, {*(mpData+4)} }}</DisplayString> - <DisplayString Condition="mnSize == 6">[{mnSize}] {{ {*mpData}, {*(mpData+1)}, {*(mpData+2)}, {*(mpData+3)}, {*(mpData+4)}, {*(mpData+5)} }}</DisplayString> - <DisplayString Condition="mnSize > 6">[{mnSize}] {{ {*mpData}, {*(mpData+1)}, {*(mpData+2)}, {*(mpData+3)}, {*(mpData+4)}, {*(mpData+5)}, ... }}</DisplayString> - <Expand> - <Item Name="[size]">mnSize</Item> - <ArrayItems> - <Size>mnSize</Size> - <ValuePointer>mpData</ValuePointer> - </ArrayItems> - </Expand> -</Type> - -<Type Name="eastl::VectorBase<*>"> - <DisplayString Condition="mpEnd == mpBegin">[{mpEnd - mpBegin}] {{}}</DisplayString> - <DisplayString Condition="mpEnd - mpBegin == 1">[{mpEnd - mpBegin}] {{ {*mpBegin} }}</DisplayString> - <DisplayString Condition="mpEnd - mpBegin == 2">[{mpEnd - mpBegin}] {{ {*mpBegin}, {*(mpBegin+1)} }}</DisplayString> - <DisplayString Condition="mpEnd - mpBegin == 3">[{mpEnd - mpBegin}] {{ {*mpBegin}, {*(mpBegin+1)}, {*(mpBegin+2)} }}</DisplayString> - <DisplayString Condition="mpEnd - mpBegin == 4">[{mpEnd - mpBegin}] {{ {*mpBegin}, {*(mpBegin+1)}, {*(mpBegin+2)}, {*(mpBegin+3)} }}</DisplayString> - <DisplayString Condition="mpEnd - mpBegin == 5">[{mpEnd - mpBegin}] {{ {*mpBegin}, {*(mpBegin+1)}, {*(mpBegin+2)}, {*(mpBegin+3)}, {*(mpBegin+4)} }}</DisplayString> - <DisplayString Condition="mpEnd - mpBegin == 6">[{mpEnd - mpBegin}] {{ {*mpBegin}, {*(mpBegin+1)}, {*(mpBegin+2)}, {*(mpBegin+3)}, {*(mpBegin+4)}, {*(mpBegin+5)} }}</DisplayString> - <DisplayString Condition="mpEnd - mpBegin > 6">[{mpEnd - mpBegin}] {{ {*mpBegin}, {*(mpBegin+1)}, {*(mpBegin+2)}, {*(mpBegin+3)}, {*(mpBegin+4)}, {*(mpBegin+5)}, ... }}</DisplayString> - <Expand> - <Item Name="[size]">mpEnd - mpBegin</Item> - <Item Name="[capacity]">mCapacityAllocator.mFirst - mpBegin</Item> - <ArrayItems> - <Size>mpEnd - mpBegin</Size> - <ValuePointer>mpBegin</ValuePointer> - </ArrayItems> - </Expand> -</Type> - -<Type Name="eastl::DequeBase<*,*,*>"> - <DisplayString Condition="mItBegin.mpCurrent == mItEnd.mpCurrent"> - [0] {{}} - </DisplayString> - <DisplayString Condition="(mItEnd.mpCurrentArrayPtr - mItBegin.mpCurrentArrayPtr) * $T3 + (mItEnd.mpCurrent-mItEnd.mpBegin) - (mItBegin.mpCurrent-mItBegin.mpBegin) == 1"> - [1] {{ {*mItBegin.mpCurrent} }} - </DisplayString> - <DisplayString Condition="(mItEnd.mpCurrentArrayPtr - mItBegin.mpCurrentArrayPtr) * $T3 + (mItEnd.mpCurrent-mItEnd.mpBegin) - (mItBegin.mpCurrent-mItBegin.mpBegin) != 0"> - [{(mItEnd.mpCurrentArrayPtr - mItBegin.mpCurrentArrayPtr) * $T3 + (mItEnd.mpCurrent-mItEnd.mpBegin) - (mItBegin.mpCurrent-mItBegin.mpBegin)}] - {{ - {*mItBegin.mpCurrent}, - ... - }} - </DisplayString> - <Expand> - <Item Name="[size]">(mItEnd.mpCurrentArrayPtr - mItBegin.mpCurrentArrayPtr) * $T3 + (mItEnd.mpCurrent-mItEnd.mpBegin) - (mItBegin.mpCurrent-mItBegin.mpBegin)</Item> - <IndexListItems> - <Size>(mItEnd.mpCurrentArrayPtr - mItBegin.mpCurrentArrayPtr) * $T3 + (mItEnd.mpCurrent-mItEnd.mpBegin) - (mItBegin.mpCurrent-mItBegin.mpBegin)</Size> - <ValueNode>mItBegin.mpCurrentArrayPtr[(mItBegin.mpCurrent-mItBegin.mpBegin + $i) / $T3][(mItBegin.mpCurrent-mItBegin.mpBegin + $i) % $T3]</ValueNode> - </IndexListItems> - </Expand> -</Type> - -<Type Name="eastl::DequeIterator<*>"> - <DisplayString>{*mpCurrent}</DisplayString> - <Expand> - <Item Name="Value">*mpCurrent</Item> - <Item Name="Previous" Condition="mpCurrent == mpBegin">*(*(mpCurrentArrayPtr-1) + (mpEnd-mpBegin) - 1)</Item> - <Item Name="Previous" Condition="mpCurrent != mpBegin">*(mpCurrent-1)</Item> - <Item Name="Next" Condition="mpCurrent+1 == mpEnd">**(mpCurrentArrayPtr+1)</Item> - <Item Name="Next" Condition="mpCurrent+1 != mpEnd">*(mpCurrent+1)</Item> - <Item Name="Begin">mpCurrent == mpBegin</Item> - <Item Name="End">mpCurrent+1 == mpEnd</Item> - </Expand> -</Type> - -<Type Name="eastl::queue<*>"> - <AlternativeType Name="eastl::priority_queue<*>" /> - <AlternativeType Name="eastl::stack<*>" /> - <DisplayString>{c}</DisplayString> - <Expand> - <ExpandedItem>c</ExpandedItem> - </Expand> -</Type> - -<Type Name="eastl::ListBase<*>"> - <DisplayString Condition="mNodeAllocator.mFirst.mpNext == &mNodeAllocator.mFirst"> - [0] {{}} - </DisplayString> - <DisplayString Condition="mNodeAllocator.mFirst.mpNext != &mNodeAllocator.mFirst && mNodeAllocator.mFirst.mpNext->mpNext == &mNodeAllocator.mFirst"> - [1] {{ {((eastl::ListNode<$T1>*)mNodeAllocator.mFirst.mpNext)->mValue} }} - </DisplayString> - <DisplayString Condition="mNodeAllocator.mFirst.mpNext != &mNodeAllocator.mFirst && mNodeAllocator.mFirst.mpNext->mpNext != &mNodeAllocator.mFirst && mNodeAllocator.mFirst.mpNext->mpNext->mpNext == &mNodeAllocator.mFirst"> - [2] - {{ - {((eastl::ListNode<$T1>*)mNodeAllocator.mFirst.mpNext)->mValue}, - {((eastl::ListNode<$T1>*)mNodeAllocator.mFirst.mpNext->mpNext)->mValue} - }} - </DisplayString> - <DisplayString Condition="mNodeAllocator.mFirst.mpNext != &mNodeAllocator.mFirst && mNodeAllocator.mFirst.mpNext->mpNext != &mNodeAllocator.mFirst && mNodeAllocator.mFirst.mpNext->mpNext->mpNext != &mNodeAllocator.mFirst"> - [?] - {{ - {((eastl::ListNode<$T1>*)mNodeAllocator.mFirst.mpNext)->mValue}, - {((eastl::ListNode<$T1>*)mNodeAllocator.mFirst.mpNext->mpNext)->mValue}, - ... - }} - </DisplayString> - <Expand> - <Synthetic Name="NOTE!"> - <DisplayString>Content of lists will repeat indefinitely. Keep that in mind!</DisplayString> - </Synthetic> - <LinkedListItems> - <HeadPointer>mNodeAllocator.mFirst.mpNext</HeadPointer> - <NextPointer>mpNext</NextPointer> - <ValueNode>((eastl::ListNode<$T1>*)this)->mValue</ValueNode> - </LinkedListItems> - </Expand> -</Type> - -<Type Name="eastl::ListNode<*>"> - <DisplayString>{mValue}</DisplayString> - <Expand> - <Item Name="Value">mValue</Item> - <Item Name="Next">*(eastl::ListNode<$T1>*)mpNext</Item> - <Item Name="Previous">*(eastl::ListNode<$T1>*)mpPrev</Item> - <Synthetic Name="NOTE!"> - <DisplayString>Content of lists will repeat indefinitely. Keep that in mind!</DisplayString> - </Synthetic> - <Synthetic Name="List"> - <DisplayString>The rest of the list follows:</DisplayString> - </Synthetic> - <LinkedListItems> - <HeadPointer>(eastl::ListNode<$T1>*)mpNext->mpNext</HeadPointer> - <NextPointer>(eastl::ListNode<$T1>*)mpNext</NextPointer> - <ValueNode>mValue</ValueNode> - </LinkedListItems> - </Expand> -</Type> - -<Type Name="eastl::ListIterator<*>"> - <DisplayString>{*mpNode}</DisplayString> - <Expand> - <ExpandedItem>mpNode</ExpandedItem> - </Expand> -</Type> - -<Type Name="eastl::SListBase<*>"> - <DisplayString Condition="mNode.mpNext == 0"> - [0] {{}} - </DisplayString> - <DisplayString Condition="mNode.mpNext != 0 && mNode.mpNext->mpNext == 0"> - [1] - {{ - {((eastl::SListNode<$T1>*)mNode.mpNext)->mValue} - }} - </DisplayString> - <DisplayString Condition="mNode.mpNext != 0 && mNode.mpNext->mpNext != 0 && mNode.mpNext->mpNext->mpNext == 0"> - [2] - {{ - {((eastl::SListNode<$T1>*)mNode.mpNext)->mValue}, - {((eastl::SListNode<$T1>*)mNode.mpNext->mpNext)->mValue} - }} - </DisplayString> - <DisplayString Condition="mNode.mpNext != 0 && mNode.mpNext->mpNext != 0 && mNode.mpNext->mpNext->mpNext != 0"> - [?] - {{ - {((eastl::SListNode<$T1>*)mNode.mpNext)->mValue}, - {((eastl::SListNode<$T1>*)mNode.mpNext->mpNext)->mValue}, - ... - }} - </DisplayString> - <Expand> - <LinkedListItems> - <HeadPointer>mNode.mpNext</HeadPointer> - <NextPointer>mpNext</NextPointer> - <ValueNode>((eastl::SListNode<$T1>*)this)->mValue</ValueNode> - </LinkedListItems> - </Expand> -</Type> - -<Type Name="eastl::SListNode<*>"> - <DisplayString>{mValue}</DisplayString> - <Expand> - <Item Name="Value">mValue</Item> - <Item Name="Next">*(eastl::SListNode<$T1>*)mpNext</Item> - <Synthetic Name="List"> - <DisplayString>The rest of the list follows:</DisplayString> - </Synthetic> - <LinkedListItems> - <HeadPointer>mpNext == nullptr ? nullptr : (eastl::SListNode<$T1>*)mpNext->mpNext</HeadPointer> - <NextPointer>(eastl::SListNode<$T1>*)mpNext</NextPointer> - <ValueNode>mValue</ValueNode> - </LinkedListItems> - </Expand> -</Type> - -<Type Name="eastl::SListIterator<*>"> - <DisplayString>{*mpNode}</DisplayString> - <Expand> - <ExpandedItem>*mpNode</ExpandedItem> - </Expand> -</Type> - -<Type Name="eastl::intrusive_list_base"> - <DisplayString Condition="mAnchor.mpNext == &mAnchor">[0] {{}}</DisplayString> - <DisplayString Condition="mAnchor.mpNext != &mAnchor && mAnchor.mpNext->mpNext == &mAnchor">[1] {{ {mAnchor.mpNext} }}</DisplayString> - <DisplayString Condition="mAnchor.mpNext != &mAnchor && mAnchor.mpNext->mpNext != &mAnchor">[?] {{ {mAnchor.mpNext}, ... }}</DisplayString> - <Expand> - <Synthetic Name="NOTE!"> - <DisplayString>Content of intrusive lists will repeat indefinitely. Keep that in mind!</DisplayString> - </Synthetic> - <LinkedListItems> - <HeadPointer>mAnchor.mpNext</HeadPointer> - <NextPointer>mpNext</NextPointer> - <ValueNode>*this</ValueNode> - </LinkedListItems> - </Expand> -</Type> - -<Type Name="eastl::intrusive_list_iterator<*>"> - <DisplayString>{*mpNode}</DisplayString> - <Expand> - <ExpandedItem>*mpNode</ExpandedItem> - </Expand> -</Type> - -<Type Name="eastl::set<*>"> - <AlternativeType Name="eastl::multiset<*>" /> - <DisplayString Condition="mnSize == 0"> - [0] {{}} - </DisplayString> - <DisplayString Condition="mnSize == 1"> - [1] - {{ - {((eastl::rbtree_node<$T1>*)mAnchor.mpNodeLeft)->mValue} - }} - </DisplayString> - <DisplayString Condition="mnSize > 1"> - [{mnSize}] - {{ - {((eastl::rbtree_node<$T1>*)mAnchor.mpNodeLeft)->mValue}, - ... - }} - </DisplayString> - <Expand> - <Item Name="[size]">mnSize</Item> - <TreeItems> - <Size>mnSize</Size> - <HeadPointer>mAnchor.mpNodeParent</HeadPointer> - <LeftPointer>mpNodeLeft</LeftPointer> - <RightPointer>mpNodeRight</RightPointer> - <ValueNode>((eastl::rbtree_node<$T1>*)this)->mValue</ValueNode> - </TreeItems> - </Expand> -</Type> - -<Type Name="eastl::rbtree<*,*>"> - <DisplayString Condition="mnSize == 0"> - [0] {{}} - </DisplayString> - <DisplayString Condition="mnSize == 1"> - [1] - {{ - {((eastl::rbtree_node<$T2>*)mAnchor.mpNodeLeft)->mValue} - }} - </DisplayString> - <DisplayString Condition="mnSize > 1"> - [{mnSize}] - {{ - {((eastl::rbtree_node<$T2>*)mAnchor.mpNodeLeft)->mValue}, - ... - }} - </DisplayString> - <Expand> - <Item Name="[size]">mnSize</Item> - <TreeItems> - <Size>mnSize</Size> - <HeadPointer>mAnchor.mpNodeParent</HeadPointer> - <LeftPointer>mpNodeLeft</LeftPointer> - <RightPointer>mpNodeRight</RightPointer> - <ValueNode>((eastl::rbtree_node<$T2>*)this)->mValue</ValueNode> - </TreeItems> - </Expand> -</Type> - -<Type Name="eastl::rbtree_node<*>"> - <DisplayString>{mValue}</DisplayString> - <Expand> - <Item Name="Value">mValue</Item> - <Synthetic Name="NOTE!"> - <DisplayString>It is possible to expand parents that do not exist.</DisplayString> - </Synthetic> - <Item Name="Parent">*(eastl::rbtree_node<$T1>*)mpNodeParent</Item> - <Item Name="Left">*(eastl::rbtree_node<$T1>*)mpNodeLeft</Item> - <Item Name="Right">*(eastl::rbtree_node<$T1>*)mpNodeRight</Item> - </Expand> -</Type> - -<Type Name="eastl::rbtree_iterator<*>"> - <DisplayString>{*mpNode}</DisplayString> - <Expand> - <ExpandedItem>mpNode</ExpandedItem> - </Expand> -</Type> - - -<Type Name="eastl::hashtable<*>"> - <DisplayString Condition="mnElementCount == 0">[{mnElementCount}] {{}}</DisplayString> - <DisplayString Condition="mnElementCount != 0">[{mnElementCount}] {{ ... }}</DisplayString> - <Expand> - <ArrayItems IncludeView="detailed"> - <Size>mnBucketCount</Size> - <ValuePointer>mpBucketArray</ValuePointer> - </ArrayItems> - <CustomListItems ExcludeView="detailed"> - <Variable Name="bucketIndex" InitialValue="0"/> - <Variable Name="entry" InitialValue ="mpBucketArray[bucketIndex]"/> - <Loop> - <Item Condition="entry != nullptr">entry->mValue</Item> - <If Condition="entry != nullptr"> - <Exec>entry = entry->mpNext</Exec> - </If> - <If Condition="entry == nullptr"> - <Exec>bucketIndex++</Exec> - <Break Condition="bucketIndex == mnBucketCount"/> - <Exec>entry = mpBucketArray[bucketIndex]</Exec> - </If> - </Loop> - </CustomListItems> - </Expand> -</Type> - -<Type Name="eastl::hash_node<*>"> - <DisplayString Condition="this != 0 && mpNext != 0"> {mValue}, {*mpNext}</DisplayString> - <DisplayString Condition="this != 0 && mpNext == 0"> {mValue}</DisplayString> - <DisplayString Condition="this == 0"></DisplayString> - <Expand> - <LinkedListItems> - <HeadPointer>this</HeadPointer> - <NextPointer>mpNext</NextPointer> - <ValueNode>mValue</ValueNode> - </LinkedListItems> - </Expand> -</Type> - -<Type Name="eastl::hashtable_iterator_base<*>"> - <DisplayString>{mpNode->mValue}</DisplayString> - <Expand> - <ExpandedItem>mpNode->mValue</ExpandedItem> - </Expand> -</Type> - -<Type Name="eastl::reverse_iterator<*>"> - <DisplayString>{*(mIterator-1)}</DisplayString> - <Expand> - <ExpandedItem>mIterator-1</ExpandedItem> - </Expand> -</Type> - -<Type Name="eastl::bitset<*>"> - <DisplayString>{{count = {kSize}}}</DisplayString> - <Expand> - <Item Name="[count]">kSize</Item> - <CustomListItems> - <Variable Name="iWord" InitialValue="0" /> - <Variable Name="iBitInWord" InitialValue="0" /> - <Variable Name="bBitValue" InitialValue="false" /> - - <Size>kSize</Size> - - <Loop> - <Exec>bBitValue = ((mWord[iWord] >> iBitInWord) % 2) != 0 ? true : false</Exec> - <Item>bBitValue</Item> - <Exec>iBitInWord++</Exec> - <If Condition="iBitInWord == kBitsPerWord"> - <Exec>iWord++</Exec> - <Exec>iBitInWord = 0</Exec> - </If> - </Loop> - </CustomListItems> - </Expand> -</Type> - -<Type Name="eastl::ring_buffer<*,*,*>"> - <DisplayString>{c}</DisplayString> - <Expand> - <ExpandedItem>c</ExpandedItem> - </Expand> -</Type> - -<Type Name="eastl::basic_string_view<*>"> - <DisplayString>{mpBegin,[mnCount]}</DisplayString> - <StringView>mpBegin,[mnCount]</StringView> -</Type> - -<Type Name="eastl::compressed_pair_imp<*>"> - <DisplayString Condition="($T3) == 0" Optional="true">({mFirst}, {mSecond})</DisplayString> - <DisplayString Condition="($T3) == 1" Optional="true">({mSecond})</DisplayString> - <DisplayString Condition="($T3) == 2" Optional="true">({mFirst})</DisplayString> - <DisplayString Condition="($T3) == 3" Optional="true">(empty)</DisplayString> - <DisplayString Condition="($T3) == 4" Optional="true">(empty)</DisplayString> - <DisplayString Condition="($T3) == 5" Optional="true">({mFirst}, {mSecond})</DisplayString> -</Type> - -<Type Name="eastl::optional<*>"> - <Intrinsic Name="value" Expression="*($T1*)&val"/> - <DisplayString Condition="!engaged">nullopt</DisplayString> - <DisplayString Condition="engaged">{value()}</DisplayString> - <Expand> - <Item Condition="engaged" Name="value">value()</Item> - </Expand> -</Type> - -<Type Name="eastl::ratio<*>"> - <DisplayString>{$T1} to {$T2}}</DisplayString> -</Type> - - -<Type Name="eastl::chrono::duration<*,eastl::ratio<1,1000000000> >"> - <DisplayString>{mRep} nanoseconds</DisplayString> -</Type> - -<Type Name="eastl::chrono::duration<*,eastl::ratio<1,1000000> >"> - <DisplayString>{mRep} microseconds</DisplayString> -</Type> - -<Type Name="eastl::chrono::duration<*,eastl::ratio<1,1000> >"> - <DisplayString>{mRep} milliseconds</DisplayString> -</Type> - -<Type Name="eastl::chrono::duration<*,eastl::ratio<1,1> >"> - <DisplayString>{mRep} seconds</DisplayString> -</Type> - -<Type Name="eastl::chrono::duration<*,eastl::ratio<60,1> >"> - <DisplayString>{mRep} minutes</DisplayString> -</Type> - -<Type Name="eastl::chrono::duration<*,eastl::ratio<3600,1> >"> - <DisplayString>{mRep} hours</DisplayString> -</Type> - -<Type Name="eastl::chrono::duration<*,eastl::ratio<*,*> >"> - <DisplayString>{mRep} duration with ratio = [{$T2} : {$T3}] </DisplayString> -</Type> - - - -<Type Name="eastl::function<*>"> - <DisplayString Condition="mInvokeFuncPtr == nullptr">empty</DisplayString> - <DisplayString>{mInvokeFuncPtr}</DisplayString> -</Type> - - -<Type Name="eastl::reference_wrapper<*>"> - <DisplayString>{*val}</DisplayString> -</Type> - -<!-- - This implementation isn't ideal because it can't switch between showing inline value vs values stored in a heap allocation. - We are hitting the limit of natvis scripting that we can't workaround unless we change the implementation of eastl::any. ---> -<Type Name="eastl::any"> - <DisplayString Condition="m_handler == nullptr">empty</DisplayString> - <DisplayString Condition="m_handler != nullptr">{m_storage.external_storage}</DisplayString> -</Type> - - - -<Type Name="eastl::atomic_flag"> - <DisplayString>{mFlag.mAtomic}</DisplayString> -</Type> - -<Type Name="eastl::variant<*>"> - <Intrinsic Name="index" Expression="(int)mIndex"/> - <DisplayString Condition="index() == size_t(-1)">[valueless_by_exception]</DisplayString> - <DisplayString Condition="index() == 0" Optional="true">{{ index=0, value={($T1*)mStorage.mBuffer.mCharData}}</DisplayString> - <DisplayString Condition="index() == 1" Optional="true">{{ index=1, value={($T2*)mStorage.mBuffer.mCharData}}</DisplayString> - <DisplayString Condition="index() == 2" Optional="true">{{ index=2, value={($T3*)mStorage.mBuffer.mCharData}}</DisplayString> - <DisplayString Condition="index() == 3" Optional="true">{{ index=3, value={($T4*)mStorage.mBuffer.mCharData}}</DisplayString> - <DisplayString Condition="index() == 4" Optional="true">{{ index=4, value={($T5*)mStorage.mBuffer.mCharData}}</DisplayString> - <DisplayString Condition="index() == 5" Optional="true">{{ index=5, value={($T6*)mStorage.mBuffer.mCharData}}</DisplayString> - <DisplayString Condition="index() == 6" Optional="true">{{ index=6, value={($T7*)mStorage.mBuffer.mCharData}}</DisplayString> - <DisplayString Condition="index() == 7" Optional="true">{{ index=7, value={($T8*)mStorage.mBuffer.mCharData}}</DisplayString> - <DisplayString Condition="index() == 8" Optional="true">{{ index=8, value={($T9*)mStorage.mBuffer.mCharData}}</DisplayString> - <DisplayString Condition="index() == 9" Optional="true">{{ index=9, value={($T10*)mStorage.mBuffer.mCharData}}</DisplayString> - <DisplayString Condition="index() == 10" Optional="true">{{ index=10, value={($T11*)mStorage.mBuffer.mCharData}}</DisplayString> - <DisplayString Condition="index() == 11" Optional="true">{{ index=11, value={($T12*)mStorage.mBuffer.mCharData}}</DisplayString> - <DisplayString Condition="index() == 12" Optional="true">{{ index=12, value={($T13*)mStorage.mBuffer.mCharData}}</DisplayString> - <DisplayString Condition="index() == 13" Optional="true">{{ index=13, value={($T14*)mStorage.mBuffer.mCharData}}</DisplayString> - <DisplayString Condition="index() == 14" Optional="true">{{ index=14, value={($T15*)mStorage.mBuffer.mCharData}}</DisplayString> - <DisplayString Condition="index() == 15" Optional="true">{{ index=15, value={($T16*)mStorage.mBuffer.mCharData}}</DisplayString> - <DisplayString Condition="index() == 16" Optional="true">{{ index=16, value={($T17*)mStorage.mBuffer.mCharData}}</DisplayString> - <DisplayString Condition="index() == 17" Optional="true">{{ index=17, value={($T18*)mStorage.mBuffer.mCharData}}</DisplayString> - <DisplayString Condition="index() == 18" Optional="true">{{ index=18, value={($T19*)mStorage.mBuffer.mCharData}}</DisplayString> - <DisplayString Condition="index() == 19" Optional="true">{{ index=19, value={($T20*)mStorage.mBuffer.mCharData}}</DisplayString> - <DisplayString Condition="index() == 20" Optional="true">{{ index=20, value={($T21*)mStorage.mBuffer.mCharData}}</DisplayString> - <DisplayString Condition="index() == 21" Optional="true">{{ index=21, value={($T22*)mStorage.mBuffer.mCharData}}</DisplayString> - <DisplayString Condition="index() == 22" Optional="true">{{ index=22, value={($T23*)mStorage.mBuffer.mCharData}}</DisplayString> - <DisplayString Condition="index() == 23" Optional="true">{{ index=23, value={($T24*)mStorage.mBuffer.mCharData}}</DisplayString> - <DisplayString Condition="index() == 24" Optional="true">{{ index=24, value={($T25*)mStorage.mBuffer.mCharData}}</DisplayString> - <DisplayString Condition="index() == 25" Optional="true">{{ index=25, value={($T26*)mStorage.mBuffer.mCharData}}</DisplayString> - <DisplayString Condition="index() == 26" Optional="true">{{ index=26, value={($T27*)mStorage.mBuffer.mCharData}}</DisplayString> - <DisplayString Condition="index() == 27" Optional="true">{{ index=27, value={($T28*)mStorage.mBuffer.mCharData}}</DisplayString> - <DisplayString Condition="index() == 28" Optional="true">{{ index=28, value={($T29*)mStorage.mBuffer.mCharData}}</DisplayString> - <DisplayString Condition="index() == 29" Optional="true">{{ index=29, value={($T30*)mStorage.mBuffer.mCharData}}</DisplayString> - <DisplayString Condition="index() == 30" Optional="true">{{ index=30, value={($T31*)mStorage.mBuffer.mCharData}}</DisplayString> - <Expand> - <Item Name="index">index()</Item> - <Item Name="[value]" Condition="index() == 0" Optional="true">($T1*)mStorage.mBuffer.mCharData</Item> - <Item Name="[value]" Condition="index() == 1" Optional="true">($T2*)mStorage.mBuffer.mCharData</Item> - <Item Name="[value]" Condition="index() == 2" Optional="true">($T3*)mStorage.mBuffer.mCharData</Item> - <Item Name="[value]" Condition="index() == 3" Optional="true">($T4*)mStorage.mBuffer.mCharData</Item> - <Item Name="[value]" Condition="index() == 4" Optional="true">($T5*)mStorage.mBuffer.mCharData</Item> - <Item Name="[value]" Condition="index() == 5" Optional="true">($T6*)mStorage.mBuffer.mCharData</Item> - <Item Name="[value]" Condition="index() == 6" Optional="true">($T7*)mStorage.mBuffer.mCharData</Item> - <Item Name="[value]" Condition="index() == 7" Optional="true">($T8*)mStorage.mBuffer.mCharData</Item> - <Item Name="[value]" Condition="index() == 8" Optional="true">($T9*)mStorage.mBuffer.mCharData</Item> - <Item Name="[value]" Condition="index() == 9" Optional="true">($T10*)mStorage.mBuffer.mCharData</Item> - <Item Name="[value]" Condition="index() == 10" Optional="true">($T11*)mStorage.mBuffer.mCharData</Item> - <Item Name="[value]" Condition="index() == 11" Optional="true">($T12*)mStorage.mBuffer.mCharData</Item> - <Item Name="[value]" Condition="index() == 12" Optional="true">($T13*)mStorage.mBuffer.mCharData</Item> - <Item Name="[value]" Condition="index() == 13" Optional="true">($T14*)mStorage.mBuffer.mCharData</Item> - <Item Name="[value]" Condition="index() == 14" Optional="true">($T15*)mStorage.mBuffer.mCharData</Item> - <Item Name="[value]" Condition="index() == 15" Optional="true">($T16*)mStorage.mBuffer.mCharData</Item> - <Item Name="[value]" Condition="index() == 16" Optional="true">($T17*)mStorage.mBuffer.mCharData</Item> - <Item Name="[value]" Condition="index() == 17" Optional="true">($T18*)mStorage.mBuffer.mCharData</Item> - <Item Name="[value]" Condition="index() == 18" Optional="true">($T19*)mStorage.mBuffer.mCharData</Item> - <Item Name="[value]" Condition="index() == 19" Optional="true">($T20*)mStorage.mBuffer.mCharData</Item> - <Item Name="[value]" Condition="index() == 20" Optional="true">($T21*)mStorage.mBuffer.mCharData</Item> - <Item Name="[value]" Condition="index() == 21" Optional="true">($T22*)mStorage.mBuffer.mCharData</Item> - <Item Name="[value]" Condition="index() == 22" Optional="true">($T23*)mStorage.mBuffer.mCharData</Item> - <Item Name="[value]" Condition="index() == 23" Optional="true">($T24*)mStorage.mBuffer.mCharData</Item> - <Item Name="[value]" Condition="index() == 24" Optional="true">($T25*)mStorage.mBuffer.mCharData</Item> - <Item Name="[value]" Condition="index() == 25" Optional="true">($T26*)mStorage.mBuffer.mCharData</Item> - <Item Name="[value]" Condition="index() == 26" Optional="true">($T27*)mStorage.mBuffer.mCharData</Item> - <Item Name="[value]" Condition="index() == 27" Optional="true">($T28*)mStorage.mBuffer.mCharData</Item> - <Item Name="[value]" Condition="index() == 28" Optional="true">($T29*)mStorage.mBuffer.mCharData</Item> - <Item Name="[value]" Condition="index() == 29" Optional="true">($T30*)mStorage.mBuffer.mCharData</Item> - <Item Name="[value]" Condition="index() == 30" Optional="true">($T31*)mStorage.mBuffer.mCharData</Item> - </Expand> -</Type> - - -<Type Name="eastl::tuple<>"> - <DisplayString IncludeView="noparens"></DisplayString> - <DisplayString ExcludeView="noparens">({*this,view(noparens)})</DisplayString> - <Expand/> -</Type> - -<Type Name="eastl::tuple<*>"> - <DisplayString IncludeView="noparens">{(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue}</DisplayString> - <DisplayString ExcludeView="noparens">({*this,view(noparens)})</DisplayString> - <Expand> - <Item Name="[0]">(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue</Item> - </Expand> -</Type> - -<Type Name="eastl::tuple<*,*>"> - <DisplayString IncludeView="noparens">{(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<1,$T2,0>*)&mImpl)).mValue}</DisplayString> - <DisplayString ExcludeView="noparens">({*this,view(noparens)})</DisplayString> - <Expand> - <Item Name="[0]">(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue</Item> - <Item Name="[1]">(*((eastl::Internal::TupleLeaf<1,$T2,0>*)&mImpl)).mValue</Item> - </Expand> -</Type> - -<Type Name="eastl::tuple<*,*,*>"> - <DisplayString IncludeView="noparens">{(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<1,$T2,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<2,$T3,0>*)&mImpl)).mValue}</DisplayString> - <DisplayString ExcludeView="noparens">({*this,view(noparens)})</DisplayString> - <Expand> - <Item Name="[0]">(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue</Item> - <Item Name="[1]">(*((eastl::Internal::TupleLeaf<1,$T2,0>*)&mImpl)).mValue</Item> - <Item Name="[2]">(*((eastl::Internal::TupleLeaf<2,$T3,0>*)&mImpl)).mValue</Item> - </Expand> -</Type> - -<Type Name="eastl::tuple<*,*,*,*>"> - <DisplayString IncludeView="noparens">{(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<1,$T2,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<2,$T3,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<3,$T4,0>*)&mImpl)).mValue}</DisplayString> - <DisplayString ExcludeView="noparens">({*this,view(noparens)})</DisplayString> - <Expand> - <Item Name="[0]">(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue</Item> - <Item Name="[1]">(*((eastl::Internal::TupleLeaf<1,$T2,0>*)&mImpl)).mValue</Item> - <Item Name="[2]">(*((eastl::Internal::TupleLeaf<2,$T3,0>*)&mImpl)).mValue</Item> - <Item Name="[3]">(*((eastl::Internal::TupleLeaf<3,$T4,0>*)&mImpl)).mValue</Item> - </Expand> -</Type> - -<Type Name="eastl::tuple<*,*,*,*,*>"> - <DisplayString IncludeView="noparens">{(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<1,$T2,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<2,$T3,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<3,$T4,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<4,$T5,0>*)&mImpl)).mValue}</DisplayString> - <DisplayString ExcludeView="noparens">({*this,view(noparens)})</DisplayString> - <Expand> - <Item Name="[0]">(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue</Item> - <Item Name="[1]">(*((eastl::Internal::TupleLeaf<1,$T2,0>*)&mImpl)).mValue</Item> - <Item Name="[2]">(*((eastl::Internal::TupleLeaf<2,$T3,0>*)&mImpl)).mValue</Item> - <Item Name="[3]">(*((eastl::Internal::TupleLeaf<3,$T4,0>*)&mImpl)).mValue</Item> - <Item Name="[4]">(*((eastl::Internal::TupleLeaf<4,$T5,0>*)&mImpl)).mValue</Item> - </Expand> -</Type> - -<Type Name="eastl::tuple<*,*,*,*,*,*>"> - <DisplayString IncludeView="noparens">{(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<1,$T2,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<2,$T3,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<3,$T4,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<4,$T5,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<5,$T6,0>*)&mImpl)).mValue}</DisplayString> - <DisplayString ExcludeView="noparens">({*this,view(noparens)})</DisplayString> - <Expand> - <Item Name="[0]">(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue</Item> - <Item Name="[1]">(*((eastl::Internal::TupleLeaf<1,$T2,0>*)&mImpl)).mValue</Item> - <Item Name="[2]">(*((eastl::Internal::TupleLeaf<2,$T3,0>*)&mImpl)).mValue</Item> - <Item Name="[3]">(*((eastl::Internal::TupleLeaf<3,$T4,0>*)&mImpl)).mValue</Item> - <Item Name="[4]">(*((eastl::Internal::TupleLeaf<4,$T5,0>*)&mImpl)).mValue</Item> - <Item Name="[5]">(*((eastl::Internal::TupleLeaf<5,$T6,0>*)&mImpl)).mValue</Item> - </Expand> -</Type> - -<Type Name="eastl::tuple<*,*,*,*,*,*,*>"> - <DisplayString IncludeView="noparens">{(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<1,$T2,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<2,$T3,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<3,$T4,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<4,$T5,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<5,$T6,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<6,$T7,0>*)&mImpl)).mValue}</DisplayString> - <DisplayString ExcludeView="noparens">({*this,view(noparens)})</DisplayString> - <Expand> - <Item Name="[0]">(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue</Item> - <Item Name="[1]">(*((eastl::Internal::TupleLeaf<1,$T2,0>*)&mImpl)).mValue</Item> - <Item Name="[2]">(*((eastl::Internal::TupleLeaf<2,$T3,0>*)&mImpl)).mValue</Item> - <Item Name="[3]">(*((eastl::Internal::TupleLeaf<3,$T4,0>*)&mImpl)).mValue</Item> - <Item Name="[4]">(*((eastl::Internal::TupleLeaf<4,$T5,0>*)&mImpl)).mValue</Item> - <Item Name="[5]">(*((eastl::Internal::TupleLeaf<5,$T6,0>*)&mImpl)).mValue</Item> - <Item Name="[6]">(*((eastl::Internal::TupleLeaf<6,$T7,0>*)&mImpl)).mValue</Item> - </Expand> -</Type> - - -</AutoVisualizer> |