Penumbra/Penumbra/Util/PointerExtensions.cs
Ottermandias 4c8ff40821
Some checks are pending
.NET Build / build (push) Waiting to run
Fix private Unks.
2025-12-18 20:47:49 +01:00

20 lines
629 B
C#

namespace Penumbra.Util;
public static class PointerExtensions
{
public static unsafe ref TField GetField<TField, TPointer>(this ref TPointer reference, int offset)
where TPointer : unmanaged
where TField : unmanaged
{
var pointer = (byte*)Unsafe.AsPointer(ref reference) + offset;
return ref *(TField*)pointer;
}
public static unsafe ref TField GetField<TField, TPointer>(TPointer* itemPointer, int offset)
where TPointer : unmanaged
where TField : unmanaged
{
var pointer = (byte*)itemPointer + offset;
return ref *(TField*)pointer;
}
}