namespace Iceshrimp.Backend.Core.Extensions; public static class EnumerableExtensions { public static async Task> AwaitAllAsync(this IEnumerable> tasks) { return await Task.WhenAll(tasks); } public static async Task AwaitAllAsync(this IEnumerable tasks) { await Task.WhenAll(tasks); } public static async Task> AwaitAllNoConcurrencyAsync(this IEnumerable> tasks) { var results = new List(); foreach (var task in tasks) results.Add(await task); return results; } public static async Task AwaitAllNoConcurrencyAsync(this IEnumerable tasks) { foreach (var task in tasks) await task; } public static bool IsDisjoint(this IEnumerable x, IEnumerable y) { return x.All(item => !y.Contains(item)); } public static bool Intersects(this IEnumerable x, IEnumerable y) { return x.Any(y.Contains); } }