Browse Source

meta: prepare for built-in name support

skypjack 10 months ago
parent
commit
a439cf476c
2 changed files with 9 additions and 0 deletions
  1. 5 0
      src/entt/meta/factory.hpp
  2. 4 0
      src/entt/meta/node.hpp

+ 5 - 0
src/entt/meta/factory.hpp

@@ -320,6 +320,7 @@ public:
             base_type::data(
                 internal::meta_data_node{
                     id,
+                    nullptr,
                     /* this is never static */
                     std::is_const_v<std::remove_reference_t<data_type>> ? internal::meta_traits::is_const : internal::meta_traits::is_none,
                     1u,
@@ -339,6 +340,7 @@ public:
             base_type::data(
                 internal::meta_data_node{
                     id,
+                    nullptr,
                     ((!std::is_pointer_v<decltype(Data)> || std::is_const_v<data_type>) ? internal::meta_traits::is_const : internal::meta_traits::is_none) | internal::meta_traits::is_static,
                     1u,
                     &internal::resolve<std::remove_cv_t<std::remove_reference_t<data_type>>>,
@@ -379,6 +381,7 @@ public:
             base_type::data(
                 internal::meta_data_node{
                     id,
+                    nullptr,
                     /* this is never static */
                     internal::meta_traits::is_const,
                     0u,
@@ -392,6 +395,7 @@ public:
             base_type::data(
                 internal::meta_data_node{
                     id,
+                    nullptr,
                     /* this is never static nor const */
                     internal::meta_traits::is_none,
                     1u,
@@ -425,6 +429,7 @@ public:
         base_type::func(
             internal::meta_func_node{
                 id,
+                nullptr,
                 (descriptor::is_const ? internal::meta_traits::is_const : internal::meta_traits::is_none) | (descriptor::is_static ? internal::meta_traits::is_static : internal::meta_traits::is_none),
                 descriptor::args_type::size,
                 &internal::resolve<std::conditional_t<std::is_same_v<Policy, as_void_t>, void, std::remove_cv_t<std::remove_reference_t<typename descriptor::return_type>>>>,

+ 4 - 0
src/entt/meta/node.hpp

@@ -95,6 +95,7 @@ struct meta_data_node {
     using size_type = std::size_t;
 
     id_type id{};
+    const char *name{};
     meta_traits traits{meta_traits::is_none};
     size_type arity{0u};
     meta_type_node (*type)(const meta_context &) noexcept {};
@@ -108,6 +109,7 @@ struct meta_func_node {
     using size_type = std::size_t;
 
     id_type id{};
+    const char *name{};
     meta_traits traits{meta_traits::is_none};
     size_type arity{0u};
     meta_type_node (*ret)(const meta_context &) noexcept {};
@@ -138,6 +140,7 @@ struct meta_type_node {
 
     const type_info *info{};
     id_type id{};
+    const char *name{};
     meta_traits traits{meta_traits::is_none};
     size_type size_of{0u};
     meta_type_node (*resolve)(const meta_context &) noexcept {};
@@ -261,6 +264,7 @@ template<typename Type>
     meta_type_node node{
         &type_id<Type>(),
         type_id<Type>().hash(),
+        nullptr,
         (std::is_arithmetic_v<Type> ? meta_traits::is_arithmetic : meta_traits::is_none)
             | (std::is_integral_v<Type> ? meta_traits::is_integral : meta_traits::is_none)
             | (std::is_signed_v<Type> ? meta_traits::is_signed : meta_traits::is_none)