feat: aetherbind, first source generator
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user