namespace ErsatzTV.Infrastructure;
public static class AsyncEnumerable
{
///
/// Creates an which yields no results, similar to
/// .
///
public static IAsyncEnumerable Empty() => EmptyAsyncEnumerator.Instance;
private class EmptyAsyncEnumerator : IAsyncEnumerator, IAsyncEnumerable
{
public static readonly EmptyAsyncEnumerator Instance = new();
public IAsyncEnumerator GetAsyncEnumerator(CancellationToken cancellationToken = default)
{
cancellationToken.ThrowIfCancellationRequested();
return this;
}
public T Current => default;
public ValueTask DisposeAsync() => default;
public ValueTask MoveNextAsync() => new(false);
}
}