using System.Threading; namespace Cysharp.Threading.Tasks.Linq { public static partial class UniTaskAsyncEnumerable { public static IUniTaskAsyncEnumerable Empty() { return Cysharp.Threading.Tasks.Linq.Empty.Instance; } } internal class Empty : IUniTaskAsyncEnumerable { public static readonly IUniTaskAsyncEnumerable Instance = new Empty(); Empty() { } public IUniTaskAsyncEnumerator GetAsyncEnumerator(CancellationToken cancellationToken = default) { cancellationToken.ThrowIfCancellationRequested(); return Enumerator.Instance; } class Enumerator : IUniTaskAsyncEnumerator { public static readonly IUniTaskAsyncEnumerator Instance = new Enumerator(); Enumerator() { } public T Current => default; public UniTask MoveNextAsync() { return CompletedTasks.False; } public UniTask DisposeAsync() { return default; } } } }