<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
	<Type Name="entt::internal::meta_base_node">
		<DisplayString>{{}}</DisplayString>
	</Type>
	<Type Name="entt::internal::meta_conv_node">
		<DisplayString>{{}}</DisplayString>
	</Type>
	<Type Name="entt::internal::meta_ctor_node">
		<DisplayString>{{ arity={ arity } }}</DisplayString>
	</Type>
	<Type Name="entt::internal::meta_data_node">
		<Intrinsic Name="has_property" Expression="!!(traits &amp; property)">
			<Parameter Name="property" Type="int"/>
		</Intrinsic>
		<DisplayString>{{ arity={ arity } }}</DisplayString>
		<Expand>
			<Item Name="[arity]">arity</Item>
			<Item Name="[is_const]">has_property(entt::internal::meta_traits::is_const)</Item>
			<Item Name="[is_static]">has_property(entt::internal::meta_traits::is_static)</Item>
			<Item Name="[prop]">prop</Item>
		</Expand>
	</Type>
	<Type Name="entt::internal::meta_func_node"	>
		<Intrinsic Name="has_property" Expression="!!(traits &amp; property)">
			<Parameter Name="property" Type="int"/>
		</Intrinsic>
		<DisplayString>{{ arity={ arity } }}</DisplayString>
		<Expand>
			<Item Name="[is_const]">has_property(entt::internal::meta_traits::is_const)</Item>
			<Item Name="[is_static]">has_property(entt::internal::meta_traits::is_static)</Item>
			<Item Name="[next]" Condition="next != nullptr">*next</Item>
			<Item Name="[prop]">prop</Item>
		</Expand>
	</Type>
	<Type Name="entt::internal::meta_prop_node">
		<DisplayString>{ value }</DisplayString>
	</Type>
	<Type Name="entt::internal::meta_template_node">
		<DisplayString>{{ arity={ arity } }}</DisplayString>
	</Type>
	<Type Name="entt::internal::meta_type_node">
		<Intrinsic Name="has_property" Expression="!!(traits &amp; property)">
			<Parameter Name="property" Type="int"/>
		</Intrinsic>
		<DisplayString Condition="info != nullptr">{{ type={ info->alias,na } }}</DisplayString>
		<DisplayString>{{}}</DisplayString>
		<Expand>
			<Item Name="[id]">id</Item>
			<Item Name="[sizeof]">size_of</Item>
			<Item Name="[is_arithmetic]">has_property(entt::internal::meta_traits::is_arithmetic)</Item>
			<Item Name="[is_integral]">has_property(entt::internal::meta_traits::is_integral)</Item>
			<Item Name="[is_signed]">has_property(entt::internal::meta_traits::is_signed)</Item>
			<Item Name="[is_array]">has_property(entt::internal::meta_traits::is_array)</Item>
			<Item Name="[is_enum]">has_property(entt::internal::meta_traits::is_enum)</Item>
			<Item Name="[is_class]">has_property(entt::internal::meta_traits::is_class)</Item>
			<Item Name="[is_meta_pointer_like]">has_property(entt::internal::meta_traits::is_meta_pointer_like)</Item>
			<Item Name="[is_meta_sequence_container]">has_property(entt::internal::meta_traits::is_meta_sequence_container)</Item>
			<Item Name="[is_meta_associative_container]">has_property(entt::internal::meta_traits::is_meta_associative_container)</Item>
			<Item Name="[default_constructor]">default_constructor != nullptr</Item>
			<Item Name="[conversion_helper]">conversion_helper != nullptr</Item>
			<Item Name="[from_void]">from_void != nullptr</Item>
			<Item Name="[template_info]">templ</Item>
			<Item Name="[details]" Condition="details != nullptr">*details</Item>
		</Expand>
	</Type>
	<Type Name="entt::meta_any">
		<DisplayString Condition="node.info != nullptr">{{ type={ node.info->alias,na }, policy={ storage.mode,en } }}</DisplayString>
		<DisplayString>{{}}</DisplayString>
		<Expand>
			<ExpandedItem>node</ExpandedItem>
			<Item Name="[context]" Condition="ctx != nullptr">ctx->value</Item>
		</Expand>
	</Type>
	<Type Name="entt::meta_handle">
		<DisplayString>{ any }</DisplayString>
	</Type>
	<Type Name="entt::meta_associative_container">
		<DisplayString>{ storage }</DisplayString>
		<Expand>
			<Item Name="[context]" Condition="ctx != nullptr">ctx->value</Item>
		</Expand>
	</Type>
	<Type Name="entt::meta_sequence_container">
		<DisplayString>{ storage }</DisplayString>
		<Expand>
			<Item Name="[context]" Condition="ctx != nullptr">ctx->value</Item>
		</Expand>
	</Type>
	<Type Name="entt::meta_data">
		<DisplayString Condition="node != nullptr">{ *node }</DisplayString>
		<DisplayString>{{}}</DisplayString>
		<Expand>
			<ExpandedItem Condition="node != nullptr">node</ExpandedItem>
			<Item Name="[context]" Condition="ctx != nullptr">ctx->value</Item>
		</Expand>
	</Type>
	<Type Name="entt::meta_func">
		<DisplayString Condition="node != nullptr">{ *node }</DisplayString>
		<DisplayString>{{}}</DisplayString>
		<Expand>
			<ExpandedItem Condition="node != nullptr">node</ExpandedItem>
			<Item Name="[context]" Condition="ctx != nullptr">ctx->value</Item>
		</Expand>
	</Type>
	<Type Name="entt::meta_prop">
		<DisplayString Condition="node != nullptr">{ *node }</DisplayString>
		<DisplayString>{{}}</DisplayString>
		<Expand>
			<ExpandedItem Condition="node != nullptr">node</ExpandedItem>
			<Item Name="[context]" Condition="ctx != nullptr">ctx->value</Item>
		</Expand>
	</Type>
	<Type Name="entt::meta_type">
		<DisplayString>{ node }</DisplayString>
		<Expand>
			<ExpandedItem>node</ExpandedItem>
			<Item Name="[context]" Condition="ctx != nullptr">ctx->value</Item>
		</Expand>
	</Type>
</AutoVisualizer>
