feat: aetherbind, first source generator

This commit is contained in:
redglow
2026-07-18 17:05:03 +02:00
parent 4ce99d9486
commit aae9c083d9
69 changed files with 210 additions and 156 deletions
+33
View File
@@ -0,0 +1,33 @@
using System.Collections.Generic;
namespace GodotHostTest.AetherBind;
public static class EnumerableExtensions
{
public enum SingleFailureReason
{
LessThanOne,
MoreThanOne
}
public static T? Single<T>(this IEnumerable<T> enumerable, out SingleFailureReason? failureReason)
where T : class
{
using var enumerator = enumerable.GetEnumerator();
if (!enumerator.MoveNext())
{
failureReason = SingleFailureReason.LessThanOne;
return null;
}
var value = enumerator.Current;
if (enumerator.MoveNext())
{
failureReason = SingleFailureReason.MoreThanOne;
return null;
}
failureReason = null;
return value;
}
}