diff --git a/src/BUTR.NativeAOT.Shared/Common.cs b/src/BUTR.NativeAOT.Shared/Common.cs index a1dae3c..64233e9 100644 --- a/src/BUTR.NativeAOT.Shared/Common.cs +++ b/src/BUTR.NativeAOT.Shared/Common.cs @@ -43,12 +43,6 @@ public unsafe interface IParameterSpanFormattable { static abstract ReadOnlySpan ToSpan(TSelf* ptr); } - public unsafe interface IParameterSpan - where TSelf : unmanaged, IParameterSpan - where TValue : unmanaged - { - static abstract ReadOnlySpan ToSpan(TSelf* ptr, int length); - } public unsafe interface IParameterNonPtr where TSelf : unmanaged, IParameterNonPtr { } public unsafe interface IParameterRawPtr where TSelf : unmanaged, IParameterRawPtr @@ -241,6 +235,7 @@ public bool TryFormat(Span utf8Destination, out int bytesWritten, ReadOnly [MethodImpl(MethodImplOptions.AggressiveInlining)] public static ReadOnlySpan ToSpan(param_json* ptr) => MemoryMarshal.CreateReadOnlySpanFromNullTerminated((char*) ptr); + [MethodImpl(MethodImplOptions.AggressiveInlining)] static IntPtr IParameterIntPtr.ToPtr(param_json* ptr) => new(ptr); [MethodImpl(MethodImplOptions.AggressiveInlining)] public static char* ToRawPtr(param_json* ptr) => (char*) ptr; @@ -254,7 +249,6 @@ public bool TryFormat(Span utf8Destination, out int bytesWritten, ReadOnly public readonly unsafe struct param_data : IParameter, IParameterSpanFormattable, - IParameterSpan, IParameterRawPtr, IParameterIntPtr, IFormattable @@ -263,9 +257,8 @@ public bool TryFormat(Span utf8Destination, out int bytesWritten, ReadOnly public static implicit operator byte*(param_data ptr) => (byte*) &ptr; [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static ReadOnlySpan ToSpan(param_data* ptr) => new IntPtr(ptr).ToString(); + public static ReadOnlySpan ToSpan(param_data* ptr) => $"[{new IntPtr(ptr->Value):x16}]"; [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static ReadOnlySpan ToSpan(param_data* ptr, int length) => new(ptr, length); static IntPtr IParameterIntPtr.ToPtr(param_data* ptr) => new(ptr); [MethodImpl(MethodImplOptions.AggressiveInlining)] public static byte* ToRawPtr(param_data* ptr) => (byte*) ptr; @@ -279,26 +272,21 @@ public bool TryFormat(Span utf8Destination, out int bytesWritten, ReadOnly public readonly unsafe struct param_callback : IParameter, IParameterSpanFormattable, - IParameterSpan, IParameterRawPtr, - IParameterIntPtr, - IFormattable + IParameterIntPtr { public static implicit operator param_callback*(param_callback value) => &value; public static implicit operator byte*(param_callback ptr) => (byte*) &ptr; [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static ReadOnlySpan ToSpan(param_callback* ptr) => new IntPtr(ptr).ToString(); + public static ReadOnlySpan ToSpan(param_callback* ptr) => $"[{new IntPtr(ptr->CallbackPtr):x16}]"; [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static ReadOnlySpan ToSpan(param_callback* ptr, int length) => new(ptr, length); static IntPtr IParameterIntPtr.ToPtr(param_callback* ptr) => new(ptr); [MethodImpl(MethodImplOptions.AggressiveInlining)] public static byte* ToRawPtr(param_callback* ptr) => (byte*) ptr; public readonly void* CallbackPtr; public readonly delegate* unmanaged[Cdecl] Callback; - - public string ToString(string? format, IFormatProvider? formatProvider) => $"[{new IntPtr(CallbackPtr):x16}]"; }