add 1.6 support and restore 1.5 compatibility
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace FisheryLib;
|
||||
|
||||
internal static class SpanCompatExtensions
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static unsafe ref T DangerousGetPinnableReference<T>(this Span<T> span)
|
||||
{
|
||||
if (span.Length == 0)
|
||||
return ref Unsafe.AsRef<T>((void*)1);
|
||||
|
||||
return ref span[0];
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static unsafe ref T DangerousGetPinnableReference<T>(this ReadOnlySpan<T> span)
|
||||
{
|
||||
if (span.Length == 0)
|
||||
return ref Unsafe.AsRef<T>((void*)1);
|
||||
|
||||
return ref Unsafe.AsRef(in MemoryMarshal.GetReference(span));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user