#pragma once #include "il2cpp-metadata.h" struct MonoMethodInfoMetadata { int64_t hash; int32_t invoker_index; int32_t method_pointer_index; }; struct MonoRGCTXDefinition { Il2CppRGCTXDataType type; AssemblyIndex assemblyIndex; int32_t token; int32_t generic_parameter_index; }; struct RuntimeGenericContextInfo { uint64_t hash; int32_t rgctxStart; int32_t rgctxCount; }; struct MonoMetadataToken { AssemblyIndex assemblyIndex; int32_t token; }; #pragma pack(push, p1,4) struct MonoMethodMetadata { MonoMetadataToken metadataToken; MethodIndex reversePInvokeWrapperIndex; uint64_t hash; }; #pragma pack(pop, p1) #pragma pack(push, p1,4) struct MonoClassMetadata { MonoMetadataToken metadataToken; int32_t genericParametersOffset; int32_t genericParametersCount; int32_t isPointer; int32_t rank; //if rank == 0, the token is for a non-array type, otherwise the rank is valid and the token represents the element type of the array int32_t elementTypeIndex; }; #pragma pack(pop, p1) struct MonoFieldMetadata { TypeIndex parentTypeIndex; int32_t token; }; struct MonoGenericInstMetadata { uint32_t type_argc; const TypeIndex *type_argv_indices; };