summaryrefslogtreecommitdiff
path: root/source/core/slang-rtti-util.h
diff options
context:
space:
mode:
Diffstat (limited to 'source/core/slang-rtti-util.h')
-rw-r--r--source/core/slang-rtti-util.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/source/core/slang-rtti-util.h b/source/core/slang-rtti-util.h
index d514d1980..741e1f847 100644
--- a/source/core/slang-rtti-util.h
+++ b/source/core/slang-rtti-util.h
@@ -6,7 +6,6 @@
namespace Slang {
struct RttiUtil
{
-
static SlangResult setInt(int64_t value, const RttiInfo* rttiInfo, void* dst);
static int64_t getInt64(const RttiInfo* rttiInfo, const void* src);
@@ -23,6 +22,16 @@ struct RttiUtil
/// Set a list count
static SlangResult setListCount(const RttiInfo* elementType, void* dst, Index count);
+ /// Returns if the type can be zero initialized
+ static bool canZeroInit(const RttiInfo* type);
+ /// Returns true if the type needs dtor
+ static bool hasDtor(const RttiInfo* type);
+ /// Returns true if we can memcpy to copy
+ static bool canMemCpy(const RttiInfo* type);
+
+ static void ctorArray(const RttiInfo* rttiInfo, void* inDst, ptrdiff_t stride, Index count);
+ static void copyArray(const RttiInfo* rttiInfo, void* inDst, const void* inSrc, ptrdiff_t stride, Index count);
+ static void dtorArray(const RttiInfo* rttiInfo, void* inDst, ptrdiff_t stride, Index count);
};
} // namespace Slang