Files
NovaFree/Scripts/Internal/Compat/InternalScript_334.cs
2025-08-02 20:11:41 +08:00

43 lines
1.4 KiB
C#

// Copyright (c) Supernova Technologies LLC
using System.Runtime.CompilerServices;
using Unity.Collections;
using Unity.Collections.LowLevel.Unsafe;
namespace Nova.Compat
{
internal unsafe static class NativeCollectionExtensions
{
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static T* GetRawPtr<T>(this NativeList<T> list) where T : unmanaged
{
return (T*)list.GetUnsafePtr();
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static T* GetRawReadonlyPtr<T>(this NativeList<T> list) where T : unmanaged
{
return (T*)list.GetUnsafeReadOnlyPtr();
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static T* GetRawPtr<T>(this NativeReference<T> reference) where T : unmanaged
{
return (T*)reference.GetUnsafePtr();
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static T* GetRawPtrWithoutChecks<T>(this NativeReference<T> reference) where T : unmanaged
{
return (T*)reference.GetUnsafePtrWithoutChecks();
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static T* GetRawReadonlyPtr<T>(this NativeReference<T> reference) where T : unmanaged
{
return (T*)reference.GetUnsafeReadOnlyPtr();
}
}
}