in utils/SkiaSharpGenerator/Cookies/CookieDetector.cs [131:171]
private static string GetTypeSignature(MethodDefinition method, TypeDefinition type)
{
if (type.IsEnum || type.IsPointer || type.IsArray)
return "I";
// special delegates
if ((type.FullName.StartsWith("SkiaSharp.") || type.FullName.StartsWith("HarfBuzzSharp.")) && type.FullName.EndsWith("ProxyDelegate"))
return "I";
switch (type.FullName)
{
case "System.String":
case "System.UInt16":
case "System.Int64":
case "System.UInt32":
case "System.Int32":
case "System.IntPtr":
case "System.Byte":
case "System.Boolean":
case "System.Void*":
case "SkiaSharp.SKManagedDrawableDelegates":
case "SkiaSharp.SKManagedStreamDelegates":
case "SkiaSharp.SKManagedWStreamDelegates":
return "I";
case "System.Double":
return "D";
case "System.Single":
return "F";
case "SkiaSharp.GRVkBackendContextNative":
return "O";
case "System.Void":
return "V";
default:
throw new NotSupportedException($"Unsupported parameter type for {method.FullName}: {type}");
}
}