private unsafe void WriteBytes(ref GameSaveData gameSaveData, void *data, int length)
        {
            if (gameSaveData.bufferSize != length)
            {
                if (gameSaveData.bufferSize > IntPtr.Size)
                {
                    GameSaveFree((void *)gameSaveData.buffer, gameSaveData.bufferSize);
                }

                if (length > IntPtr.Size)
                {
                    gameSaveData.buffer = (ulong)GameSaveMalloc(length);
                }

                gameSaveData.bufferSize = length;
            }

            if (gameSaveData.bufferSize > IntPtr.Size)
            {
                UnsafeUtility.MemCpy((void *)gameSaveData.buffer, data, gameSaveData.bufferSize);
            }
            else
            {
                fixed(void *bufferPtr = &gameSaveData.buffer)
                UnsafeUtility.MemCpy(bufferPtr, data, gameSaveData.bufferSize);
            }
        }
 private unsafe void ReadBytes(ref GameSaveData gameSaveData, void *data)
 {
     if (gameSaveData.bufferSize > IntPtr.Size)
     {
         UnsafeUtility.MemCpy(data, (void *)gameSaveData.buffer, gameSaveData.bufferSize);
     }
     else
     {
         fixed(void *bufferPtr = &gameSaveData.buffer)
         UnsafeUtility.MemCpy(data, bufferPtr, gameSaveData.bufferSize);
     }
 }
        private unsafe GameSaveResult ErrorCheckGameSaveData <T>(ref GameSaveData gameSaveData, GameSaveType gameSaveType, ulong stableTypeHash) where T : unmanaged
        {
            if (gameSaveData.gameSaveType != gameSaveType)
            {
                return(GameSaveResult.ErrorType);
            }

            if (gameSaveData.stableTypeHash != stableTypeHash)
            {
                return(GameSaveResult.ErrorType);
            }

            int elementSize = gameSaveData.bufferSize / gameSaveData.numElements;

            if (elementSize != UnsafeUtility.SizeOf <T>())
            {
                return(GameSaveResult.ErrorDataSize);
            }

            return(GameSaveResult.Success);
        }