Badminton-Scoreboard/Libraries/libil2cpp/include/vm/GenericClass.h
2023-10-08 10:24:48 +08:00

44 lines
1.5 KiB
C++

#pragma once
#include <stdint.h>
#include "il2cpp-config.h"
struct Il2CppClass;
struct Il2CppGenericClass;
struct Il2CppGenericContext;
namespace il2cpp
{
namespace vm
{
class LIBIL2CPP_CODEGEN_API GenericClass
{
public:
// exported
public:
//internal
static Il2CppClass* GetClass(Il2CppGenericClass *gclass, bool throwOnError = true);
static Il2CppGenericContext* GetContext(Il2CppGenericClass *gclass);
static Il2CppClass* GetTypeDefinition(Il2CppGenericClass *gclass);
static bool IsEnum(Il2CppGenericClass *gclass);
static bool IsValueType(Il2CppGenericClass *gclass);
static void SetupEvents(Il2CppClass* genericInstanceType);
static void SetupFields(Il2CppClass* genericInstanceType);
static void SetupMethods(Il2CppClass* genericInstanceType);
static void SetupProperties(Il2CppClass* genericInstanceType);
static bool HasSameGenericTypeDefinition(const Il2CppGenericClass* gclass1, const Il2CppGenericClass* gclass2)
{
IL2CPP_ASSERT(gclass1->type->type == IL2CPP_TYPE_VALUETYPE || gclass1->type->type == IL2CPP_TYPE_CLASS);
IL2CPP_ASSERT(gclass2->type->type == IL2CPP_TYPE_VALUETYPE || gclass2->type->type == IL2CPP_TYPE_CLASS);
return gclass1->type->data.typeHandle == gclass2->type->data.typeHandle;
}
private:
static Il2CppClass* CreateClass(Il2CppGenericClass *gclass, bool throwOnError = true);
};
} /* namespace vm */
} /* namespace il2cpp */