using System.Collections.Generic; using System.Runtime.CompilerServices; using System.Threading.Tasks; namespace YoutubeDownloader.Core.Utils.Extensions; public static class AsyncCollectionExtensions { private static async ValueTask> CollectAsync( this IAsyncEnumerable asyncEnumerable ) { var list = new List(); await foreach (var i in asyncEnumerable) list.Add(i); return list; } public static ValueTaskAwaiter> GetAwaiter( this IAsyncEnumerable asyncEnumerable ) => asyncEnumerable.CollectAsync().GetAwaiter(); }