diff options
Diffstat (limited to 'src/s3select/rapidjson/contrib/natvis/rapidjson.natvis')
-rw-r--r-- | src/s3select/rapidjson/contrib/natvis/rapidjson.natvis | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/s3select/rapidjson/contrib/natvis/rapidjson.natvis b/src/s3select/rapidjson/contrib/natvis/rapidjson.natvis new file mode 100644 index 000000000..e7bd44b6e --- /dev/null +++ b/src/s3select/rapidjson/contrib/natvis/rapidjson.natvis @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="utf-8"?> +<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010"> + <!-- rapidjson::GenericValue - basic support --> + <Type Name="rapidjson::GenericValue<*,*>"> + <DisplayString Condition="(data_.f.flags & kTypeMask) == kNullType">null</DisplayString> + <DisplayString Condition="data_.f.flags == kTrueFlag">true</DisplayString> + <DisplayString Condition="data_.f.flags == kFalseFlag">false</DisplayString> + <DisplayString Condition="data_.f.flags == kShortStringFlag">{(const Ch*)data_.ss.str,na}</DisplayString> + <DisplayString Condition="(data_.f.flags & kTypeMask) == kStringType">{(const Ch*)((size_t)data_.s.str & 0x0000FFFFFFFFFFFF),na}</DisplayString> + <DisplayString Condition="(data_.f.flags & kNumberIntFlag) == kNumberIntFlag">{data_.n.i.i}</DisplayString> + <DisplayString Condition="(data_.f.flags & kNumberUintFlag) == kNumberUintFlag">{data_.n.u.u}</DisplayString> + <DisplayString Condition="(data_.f.flags & kNumberInt64Flag) == kNumberInt64Flag">{data_.n.i64}</DisplayString> + <DisplayString Condition="(data_.f.flags & kNumberUint64Flag) == kNumberUint64Flag">{data_.n.u64}</DisplayString> + <DisplayString Condition="(data_.f.flags & kNumberDoubleFlag) == kNumberDoubleFlag">{data_.n.d}</DisplayString> + <DisplayString Condition="data_.f.flags == kObjectType">Object members={data_.o.size}</DisplayString> + <DisplayString Condition="data_.f.flags == kArrayType">Array members={data_.a.size}</DisplayString> + <Expand> + <Item Condition="data_.f.flags == kObjectType" Name="[size]">data_.o.size</Item> + <Item Condition="data_.f.flags == kObjectType" Name="[capacity]">data_.o.capacity</Item> + <ArrayItems Condition="data_.f.flags == kObjectType"> + <Size>data_.o.size</Size> + <!-- NOTE: Rapidjson stores some extra data in the high bits of pointers, which is why the mask --> + <ValuePointer>(rapidjson::GenericMember<$T1,$T2>*)(((size_t)data_.o.members) & 0x0000FFFFFFFFFFFF)</ValuePointer> + </ArrayItems> + + <Item Condition="data_.f.flags == kArrayType" Name="[size]">data_.a.size</Item> + <Item Condition="data_.f.flags == kArrayType" Name="[capacity]">data_.a.capacity</Item> + <ArrayItems Condition="data_.f.flags == kArrayType"> + <Size>data_.a.size</Size> + <!-- NOTE: Rapidjson stores some extra data in the high bits of pointers, which is why the mask --> + <ValuePointer>(rapidjson::GenericValue<$T1,$T2>*)(((size_t)data_.a.elements) & 0x0000FFFFFFFFFFFF)</ValuePointer> + </ArrayItems> + + </Expand> + </Type> + +</AutoVisualizer> + |