mirror of
https://github.com/xivdev/Penumbra.git
synced 2025-12-31 04:43:42 +01:00
20 lines
629 B
C#
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;
|
|
}
|
|
}
|